home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 August: Tool Chest / Dev.CD Aug 94.toast / Tool Chest / OS⁄Toolbox / Apple Events / AE Suites / AE Suite•Database / AER—Database Suite / AER—Database Suite
Encoding:
Text File  |  1993-01-05  |  272.0 KB  |  546 lines  |  [ONLN/HLX2]

  1.         
  2.     Apple Event Registry: Database Suite
  3.     
  4.         
  5.         
  6.         
  7.         
  8.         
  9.         
  10.         
  11.         
  12.         
  13.         
  14.         
  15.         
  16.         
  17.         
  18.         
  19.             
  20.      
  21. Developer Technical Publications
  22. © Apple Computer, Inc. 1992    
  23.  
  24.     Apple Computer, Inc. 
  25.  
  26. © 1992, Apple Computer, Inc. 
  27. All rights reserved.
  28. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, mechanical, electronic, photocopying, recording, or otherwise, without prior written permission of Apple Computer, Inc. Printed in the United States of America.
  29. The Apple logo is a registered trademark of Apple Computer, Inc. Use of the “keyboard” Apple logo (Option-Shift-K) for commercial purposes without the prior written consent of Apple may constitute trademark infringement and unfair competition in violation of federal and state laws.  
  30. Apple Computer, Inc.
  31. 20525 Mariani Avenue 
  32. Cupertino, CA  95014-6299
  33. 408-996-1010
  34. Apple, the Apple logo, APDA, LaserWriter, and Macintosh are trademarks of Apple Computer, Inc., registered in the United States and other countries.
  35. Adobe Illustrator and PostScript are trademarks of Adobe Systems Incorporated, which may be registered in certain jurisdictions. 
  36. ITC Zapf Dingbats is a registered trademark of International Typeface Corporation.
  37. Microsoft is a registered trademark of Microsoft Corporation.
  38. Palatino is a registered trademark of Linotype AG and/or its subsidiaries.
  39. Varityper is a registered trademark of Varityper, Inc.
  40. Simultaneously published in the United States and Canada.
  41.  
  42. Limited Warranty on Media and Replacement
  43. If you discover physical defects in the manual or in the media on which a software product is distributed, APDA will replace the media or manual at no charge to you provided you return the item to be replaced with proof of purchase to APDA.
  44. ALL IMPLIED WARRANTIES ON THIS MANUAL, INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE LIMITED IN DURATION TO NINETY (90) DAYS FROM THE DATE OF THE ORIGINAL RETAIL PURCHASE OF THIS PRODUCT.  
  45. Even though Apple has reviewed this manual, APPLE MAKES NO WARRANTY OR REPRESENTATION, EITHER EXPRESS OR IMPLIED, WITH RESPECT TO THIS MANUAL, ITS QUALITY, ACCURACY, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. AS A RESULT, THIS MANUAL IS SOLD “AS IS,” AND YOU, THE PURCHASER, ARE ASSUMING THE ENTIRE RISK AS TO ITS QUALITY AND ACCURACY.  
  46. IN NO EVENT WILL APPLE BE LIABLE FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES RESULTING FROM ANY DEFECT OR INACCURACY IN THIS MANUAL, even if advised of the possibility of such damages.  
  47. THE WARRANTY AND REMEDIES SET FORTH ABOVE ARE EXCLUSIVE AND IN LIEU OF ALL OTHERS, ORAL OR WRITTEN, EXPRESS OR IMPLIED. No Apple dealer, agent, or employee is authorized to make any modification, extension, or addition to this warranty.  
  48. Some states do not allow the exclusion or limitation of implied warranties or liability for incidental or consequential damages, so the above limitation or exclusion may not apply to you. This warranty gives you specific legal rights, and you may also have other rights which vary from state to state.  
  49.         Contents
  50. Introduction to the Database suite  /  2
  51. Overview of the Database suite  /  2
  52. Applications that should support the Database suite  /  3
  53. Typical client applications for the Database suite  /  3
  54. Relationship of the Database suite with other suites  /  3
  55. Using object specifiers in place of other parameters  /  4
  56. Apple events defined in the Database suite  /  4
  57. Abort Transaction—cancel a series of changes  /  5
  58. Begin Transaction—begin a transaction thread and optionally associate it with an existing session  /  7
  59. Group—summarize a table  /  9
  60. Sort—order an object by one or more of its elements  /  11
  61. Object classes defined in the Database suite  /  13
  62. cCell—a cell from a table  /  16
  63. cColumn—a column of cells from a table  /  21
  64. cDatabase—a database  /  25
  65. cDBMS—a database management system  /  28
  66. cHost—a network host containing a DBMS or database  /  30
  67. cKey—an indexed column  /  33
  68. cRow—a row of cells from a table  /  36
  69. cRowSelection—a saved selection of rows  /  40
  70. cSession—an active session connected to a host, DBMS, or database  /  44
  71. cTable—a table of rows, columns, and cells from a database  /  48
  72. Descriptor types defined in the Database suite  /  51
  73. typeCell—a cell object  /  52
  74. typeColumn—a column object  /  53
  75. typeKey—a key fields object  /  54
  76. typeRow—a row object  /  55
  77. typeRowSelection—a row selection object  /  56
  78. typeSession—a session object  /  57
  79. typeTable—a table object  /  58
  80. Key forms defined in the Database suite  /  59
  81. Comparison operators defined in the Database suite  /  60
  82. Constants defined in the Database suite  /  61
  83.  
  84.         Figures and tables
  85. Figure 1    Object inheritance hierarchy for the Database suite  /  15
  86. Table 1    Apple events defined in the Database suite  /  4
  87. Table 2    Apple event object classes defined in the Database suite  /  13
  88. Table 3    Descriptor types defined in the Database suite  /  51
  89. Table 4    Key forms defined in the Database suite  /  59
  90. Table 5    Comparison operators defined in the Database suite  /  60
  91. Table 6    Constants defined in the Database suite  /  61
  92.  
  93.  
  94.         The Database Suite
  95. The Database suite defines Apple event constructs that are used for communicating with database programs and transferring data to and from a database. This suite should be supported by applications that work cooperatively with database applications.
  96. Introduction to the Database suite
  97. The Database suite defines Apple event constructs that allow applications to communicate with database programs. By using the constructs defined in the Database suite, an application should be able to access a database and manipulate its data.
  98. The Database suite is an extension of the events and objects defined in the Apple Event Registry: Standard Suites. In order to use the Database suite Apple event constructs, an understanding of the events and objects of the Core suite, Table suite, and Miscellaneous Standards is required. Anyone attempting to understand or use the Database suite must read and understand the Apple Event Registry: Standard Suites. An understanding of the Apple Event Manager is also encouraged. (See the Apple Event Manager chapter of “Inside Macintosh: InterApplication Communication“ for more information.)
  99. Overview of the Database suite
  100. The Database suite defines Apple events for
  101. n    performing more complex transactions than required by the Core suite. A transaction is a series of Apple events that must be processed without interruption from other Apple events. The Core suite transaction model allows a single transaction; any subsequent transactions cannot be started until the initial transaction has been completed. On the other hand, databases typically allow multiple transactions that can consist of a variety of operations. These transactions can be canceled without completion by using the Abort Transaction event, causing the database to return to the state it was in prior to the start of the transaction. Transactions can also be verified through the use of cSession object.
  102. n    sorting or accessing tables within a database. Data in a database is stored in the form of tables. A table is a named row of column headings, with zero or more rows of data values inserted under those headings. A single record is called a row and a table consists of a set of rows. The intersection of a row and a column is called a cell. The data contained in a cell is known as atomic data which can have either a single value or a list of values (in the case of multi-valued data cells).
  103. n    producing grouped summaries from tables.
  104. The Database suite also defines object classes for
  105. n    accessing rows, columns, and cells within a database.
  106. n    accessing a database management system (DBMS). A DBMS is a collection of programs that enables users to create and maintain a database.
  107. n    accessing the database host (a computer running a DBMS).
  108. n    managing the sessions object on a host, DBMS, or a database.
  109. n    accessing selections in a database.
  110. n    accessing key fields in a database. The key field in a database is a column (or a combination of a number of columns) that can be used to uniquely identify rows in the table.
  111. Applications that should support the Database suite
  112. The following types of applications should support the Database suite:
  113. n    Applications that manipulate databases or spreadsheets. 
  114. n    Applications that communicate with local or remote databases. 
  115. n    Applications that remotely access databases. 
  116. Typical client applications for the Database suite
  117. The following types of applications are likely to be clients of applications that support the Database suite:
  118. n    Applications that utilize shared data, for example, addresses and phone numbers.
  119. n    Applications that use information in a networked database, such as CAD, Forms, Inventory Control, or Point of Sale. 
  120. n    Applications that interact with database programs. 
  121. Relationship of the Database suite with other suites
  122. The Database suite’s Apple event constructs allow applications to refer to, request, and modify a remote database application’s data when used in conjunction with the objects and events defined in the Apple Event Registry: Standard Suites.
  123. The Database suite defines three new Apple events: Abort Transaction, Group, and Sort, in addition to the Begin Transaction event which is an extension of the Begin Transaction event of the Miscellaneous Standards. To support the Database suite, an application must also support a small subset of Apple events from the Core suite, particularly Do Objects Exist, Get Data, Get Data Size, and Set Data. A few Apple events from the Miscellaneous Standards are also used by the Database suite. All of the common functions of a database operation can be accomplished using only the Apple events defined in the Apple Event Registry: Standard Suites.
  124. For example, the Create Element event is used to create an object in this suite. A descriptor record containing initialization data is passed as the keyAEData parameter to the Create Element event. This descriptor contains optional information necessary to create the object. If the information is missing, the server uses default values. It follows that the Get Data and Set Data events are the most commonly used events of the Core suite. They provide the capability of manipulating the data defined by the database objects. By using the Get Data event, an application can interrogate another application about the value of various fields, columns, rows, or cells. The Apple Event Manager’s automatic coercion handlers allow the user to request data in a format acceptable to Apple event constructs. 
  125. Using object specifiers in place of other parameters
  126. In all of the suites except the Finder suite, you can substitute an object specifier for any parameter of an Apple event that is not already defined as an object specifier. This object specifier must specify a single object. When you substitute an object specifier for a parameter, the actual value of the parameter is the value of the default descriptor record for the specified object (that is, the value you get when you send a Get Data Apple event for the object and do not specify a particular descriptor type for the result).
  127. Apple events defined in the Database suite
  128. The Apple events defined in the Database suite are described in the following sections. Table 1 lists these Apple events.
  129. n    Table 1    Apple events defined in the Database suite
  130. Name    Requested action
  131. Abort Transaction    Cancel a series of changes.    
  132. Begin Transaction    Begin a transaction thread and optionally associate it with an existing session.    
  133. Group    Summarize a table.    
  134. Sort    Order an object by one or more of its elements.    
  135. Abort Transaction—cancel a series of changes
  136. The Abort Transaction Apple event is used to cancel a transaction without allowing it to complete. This ensures that any changes that took place during the transaction are not made permanent.
  137. Event Class    kAEDatabase
  138. Event ID    kAEAbortTransaction
  139. Parameters    None
  140. Reply Parameters None
  141. Notes    Abort Transaction complements the Begin Transaction, End Transaction, and Transaction Terminated events found in the Miscellaneous Standards. It extends their functions to allow commit and rollback functionality. Transactions are used to connect a series of events into one logical operation. The transaction ID, which is present in every Apple event, is used to identify the transaction. If a session has been associated with a given transaction, every event that is part of that transaction will behave as if the session were explicitly given. To associate a session with a transaction, include the session identifier as an optional parameter in the Begin Transaction event. Any transaction can either be completed by sending an End Transaction event (known as commit because it saves all the pending actions), or it may be aborted by sending an Abort Transaction event (known as rollback because it cancels any pending series of changes).
  142.     Databases that do not support commit and rollback should treat the Begin Transaction event as a Save and the Abort Transaction event as a Revert. Otherwise, the server returns errAEEventNotHandled on receipt of the Abort Transaction event to indicate that it could not rollback the transaction. More complex database management systems are able to rollback the transaction on receipt of an Abort Transaction event or commit the transaction upon receipt of the End Transaction event.
  143.     If a database does not support any type of transaction, the Begin, Abort, and End Transaction events are not handled. Instead, the events are processed on a first come first serve basis, which is an inefficient method for even the least complex database. On the other hand, some databases support only single transaction threads that handle one transaction at a time. In such cases, the Begin Transaction and the End Transaction events are used to lock out other events while processing a series of events. The way these events are handled by the server depends on the way the server has been implemented. Either of these transaction mechanisms may be used with or without support for cSession object.
  144. The Abort Transaction event differs from the Transaction Terminated event found in the Miscellaneous Standards, in that the client application sends an Abort Transaction event to cancel a transaction, whereas in the latter case, the server sends a Transaction Terminated event if it encounters an error.
  145. Result Codes    
  146. errAEEventFailed    –10000    The Apple event handler failed when attempting to handle the Apple event.
  147. errAENoSuchTransaction    -10012    The specified transaction is not a valid transaction; the transaction may never have begun, or it may have been terminated.Begin Transaction—begin a transaction thread and optionally associate it with an existing session
  148. The Begin Transaction Apple event is an extension of the Begin Transaction event of the Miscellaneous Standards. The Begin Transaction Apple event is used to initiate a transaction and return a transaction ID for subsequent events in the transaction. In the Database suite, this Apple event is extended to provide a way to associate a transaction thread (a series of events that occur under the auspices of a single transaction) with an existing session. The cSession object, the direct parameter to the Begin Transaction Apple event, is optional and may not be required even where sessions are being used. The client application may be allowed to open a transaction without any session object. In such cases, the server uses guest privileges for the transaction. The direct parameter is optional as some applications may not require sessions. On servers that do require sessions, this parameter is required for a transaction to be initiated.
  149. Event Class    kAEMiscStandards
  150. Event ID    kAEBeginTransaction
  151. Parameters    
  152. keyDirectObject
  153. Description:    The session with which to associate 
  154. this transaction
  155. Descriptor Type:    typeObjectSpecifier
  156. Required or Optional?    Optional
  157. Reply Parameters 
  158. keyAEResult
  159. Description:    The transaction ID
  160. Descriptor Type:    typeLongInteger
  161. Required or Optional?    Required
  162. keyErrorNumber
  163. Description:    The result code for the event
  164. Descriptor Type:    typeLongInteger
  165. Required or Optional?    Optional (The absence of a keyErrorNumber parameter in the reply indicates that the event was handled successfully.)
  166. keyErrorString
  167. Description:    A character string that describes the error, if any, that occurred when the event was handled
  168. Descriptor Type:    typeIntlText
  169. Required or Optional?    Optional
  170. Result Codes    
  171. errAEEventFailed    –10000    The Apple event handler failed when attempting to handle the Apple event.
  172. errAEInTransaction    –10011    Could not handle this Apple event because it is not part of the current transaction.
  173. errAENoSuchTransaction    –10012    The specified transaction is not a valid transaction; the transaction may never have begun, or it may have been terminated.
  174. Notes    Some applications may wish to allow nested transactions. A nested transaction is a new transaction within the context of another existing transaction. Although nested transactions are allowed, they are not required. Nested transactions allow multiple levels of commit and rollback to occur. If an application does not support nested transactions it may return an errAEInTransaction error if a Begin Transaction event occurs during another transaction. Initial Begin Transaction events use a transaction ID of kAnyTransaction, whereas nested Begin Transaction events use their enclosing transaction’s ID.
  175. Group—summarize a table
  176. The Group Apple event is used to create a table of summary rows by using data from an existing table. These summary rows are computed based on the columns specified: for every column in the direct object, all rows are grouped by value, and a summary row is produced for each row with a distinct value. Rows with identical values are summarized by using the function specified on the specified group columns. Functions are listed in the constants section. Either or both of the group columns and functions may be a list. If there is a list of columns and a single function, then the function applies to all the columns. If there are multiple functions, then there must be only one function for every column listed. This makes it possible to summarize multiple columns with one Apple event.
  177. Event Class    kAEDatabase
  178. Event ID    kAEGroup
  179. Parameters    
  180. keyDirectObject
  181. Description:    The columns to use in generating a new table of summary rows
  182. Descriptor Type:    typeObjectSpecifier
  183. Required or Optional?    Required
  184. keyAEGroupColumns
  185. Description:    The columns to summarize (may be a list)
  186. Descriptor Type:    typeObjectSpecifier
  187. Required or Optional?    Required
  188. keyAEGroupFunctions
  189. Description:    The functions with which to summarize (may be a list). The following group functions are available: kAverage, kCount, kMaximum, kMean, kMinimum, kStdDev, and kSum.
  190. Descriptor Type:    typeEnumeration
  191. Required or Optional?    Required
  192. keyAEInsertHere
  193. Description:    The destination summary table
  194. Descriptor Type:    typeInsertionLoc
  195. Required or Optional?    Optional
  196. Reply Parameters
  197. keyAEResult
  198. Description:    The summary table (if not specified)
  199. Descriptor Type:    typeObjectSpecifier
  200. Required or Optional?    Optional
  201. keyErrorNumber
  202. Description:    The result code for the event
  203. Descriptor Type:    typeLongInteger
  204. Required or Optional?    Optional (The absence of a keyErrorNumber parameter in the reply indicates that the event was handled successfully.)
  205. Notes    The destination table is optional and should be created and returned as the direct object if not specified. The keyAEInsertHere specifies where to put the newly created rows.
  206.     Since the functions are specified by a four character code, both the client application and the server must have a list of common functions to specify. There is no provision for textual functions or for code resources since this is intended to be platform independent. Instead, the table of common functions should be extended.
  207. Result Codes    
  208. errAEEventFailed        –10000        The Apple event handler failed when     attempting to handle the Apple event.
  209. errAENoSuchGroupFunction    –10018    The keyAEGroupFunctions     parameter is not a known value.
  210. Sort—order an object by one or more of its elements
  211. The Sort Apple event is used to order an object by one or more of its elements. For example, a client application may wish to sort a table based on one of its columns or a selection of rows based on a cell or column. The sort type indicates the way by which to sort, such as ascending or descending order. The element by which to sort may be a list of items; in this case, the first element of the list is the most significant item on which to sort, and each subsequent item is a less significant item. Applications which do not support multiple item sorts can either perform multiple sorts in response to this event or simply ignore all but the first sort element in the keyAESortElement list.
  212. Event Class    kAEDatabase
  213. Event ID    kAESort
  214. Parameters    
  215. keyDirectObject
  216. Description:    The object to sort. (The value must be one of the following: cTable, cRowSelection, or a list of cRows.)
  217. Descriptor Type:    typeObjectSpecifier
  218. Required or Optional?    Required
  219. keyAESortElement
  220. Description:    The columns by which to sort (may be a list)
  221. Descriptor Type:    typeObjectSpecifier
  222. Required or Optional?    Required
  223. keyAESortType
  224. Description:    Sort type (may be a list)
  225. Descriptor Type:    typeShortInteger
  226. Required or Optional?    Optional
  227. Reply Parameters None
  228. Notes    If keyAESortElement is an optional parameter, then the client application can instruct server applications to unsort a sorted table by omitting or sending a null parameter. The keyAESortType parameter would be ignored in this case. If the keyAESortElement is a list, and the keyAESortType is a scalar, then the sort type specified is used for all fields that are to be sorted.
  229.     If there is a list of sort types specified as keyAESortType, then there must be a matching list in the parameter keyAESortElement and each sort element must be sorted by the corresponding sort type. The default sort should be an ascending textual sort.
  230. Result Codes    
  231. errAEEventFailed    –10000    The Apple event handler failed when attempting to handle the Apple event.
  232. errAENoSuchSortType    –10017    The keyAESortType parameter is not a known value.
  233. Object classes defined in the Database suite
  234. The Apple event object classes defined in the Database suite are described in the following sections. Table 2 lists these object classes. 
  235. n    Table 2    Apple event object classes defined in the Database suite
  236. Object class ID    Description
  237. cCell    A cell from a table
  238. Properties:    pBestType, pClass, pDefaultType, pFormula, pLock, pName, pProtection, pRepeatsize, pValue
  239. Element Classes:    None
  240. cColumn    A column of cells from a table
  241. Properties:    pAccess, pBestType, pClass, pDefaultType, pFormula, pLock, pName, pNullsOk, pProtection, pRepeating, pRepeatSize, pUniqueValue
  242. Element Classes:    cCell, cColumn
  243. cDatabase    A database
  244. Properties:    pAccess, pBestType, pClass, pDefaultType, pLock, pName
  245. Element Classes:    cSession, cTable
  246. cDBMS    A database management system
  247. Properties:    pBestType, pClass, pDefaultType, pName
  248. Element Classes:    cDatabase, cSession
  249. cHost    A network host containing a DBMS or database
  250. Properties:    pBestType, pClass, pDefaultType, pName
  251. Element Classes:    cDatabase, cDBMS, cSession
  252. cKey    An indexed column
  253. Properties:    pBestType, pClass, pCurrentSort, pDefaultType, pName, pPrimaryKey, pUniqueValue
  254. Element Classes:    cColumn
  255.     (continued)
  256. n    Table 2    Apple event object classes defined in the Database suite (continued)
  257. Object class ID    Description
  258. cRow    A row of cells from a table
  259. Properties:    pAccess, pBestType, pClass, pDefaultType, pID, pLock, pName, pProtection
  260. Element Classes:    cCell, cTable
  261. cRowSelection    A saved selection of rows
  262. Properties:    pAccess, pBestType, pClass, pDefaultType, pKind, pLock, pName, pProtection, pRowIDs
  263. Element Classes:    cColumn, cKey, cRow
  264. cSession    An active session connected to a host, DBMS, or database
  265. Properties:    pAccount, pBestType, pClass, pDefaultType, pGuest, pID, pOpenTransaction, pPassword, pUser
  266. Element Classes:    None
  267. cTable    A table of rows, columns, and cells from a database
  268. Properties:    pAccess, pBestType, pClass, pDefaultType, pKind, pLock, pName, pProtection
  269. Element Classes:    cCell, cColumn, cKey, cRow
  270. Figure 1 illustrates the inheritance hierarchy for the object classes defined in the Database suite. Listed for each object class are the properties, element classes, and Apple events that have not been inherited from object classes higher in the inheritance hierarchy.
  271. n    Figure 1    Object inheritance hierarchy for the Database suite
  272. Cell—a cell from a table
  273. The cCell object class is the class for atomic data in a DBMS. It is an extension of the cCell object class defined in the Table suite. The intersection of a row and a column is called a cell. The data contained in a cell is called atomic data. The contents of a cell may be of any data type, however all cells in one column typically have the same data type. This data type can be accessed through the pDefaultType property and can be returned as cText by a coercion handler.
  274. Superclass    cObject (Core suite)
  275. Default Descriptor
  276. Type
  277.  
  278.  
  279. typeCell
  280. Properties    
  281. pBestType
  282. Description:    The descriptor type that can contain the most information from objects of this object class
  283. Object Class ID:    cType
  284. Inherited?    Yes, from cObject
  285. Modifiable or 
  286. Non-modifiable?    Non-modifiable
  287. pClass
  288. Description:    The four-character class ID for the object class
  289. Object Class ID:    cType
  290. Inherited?    Yes, from cObject
  291. Modifiable or 
  292. Non-modifiable?    Non-modifiable
  293. pDefaultType
  294. Description:    The default descriptor type for the object class
  295. Object Class ID:    cType
  296. Inherited?    Yes, from cObject
  297. Modifiable or 
  298. Non-modifiable?    Non-modifiable
  299. pFormula
  300. Description:    The formula for the cell (inherits or overrides the column's formula, if any)
  301. Object Class ID:    cText
  302. Inherited?    No
  303. Modifiable or 
  304. Non-modifiable?    Modifiable
  305. pLock
  306. Description:    The lock status of the object in the current transaction (The value must be one of the following: kExclusiveLock, kNoLock, or kSharedLock.)
  307. Object Class ID:    enumLockTypes
  308. Inherited?    No
  309. Modifiable or 
  310. Non-modifiable?    Modifiable
  311. pName
  312. Description:    The name of the cell
  313. Object Class ID:    cText
  314. Inherited?    No
  315. Modifiable or 
  316. Non-modifiable?    Modifiable
  317. pProtection
  318. Description:    Specifies whether the elements or pFormula property of the cell can be changed (The value must be one of the following: kAEFormulaProtect, kAEReadOnly, or kAEReadWrite.)
  319. Object Class ID:    enumProtection
  320. Inherited?    No
  321. Modifiable or 
  322. Non-modifiable?    Modifiable
  323. pRepeatSize
  324. Description:    Indicates the actual number of values for the particular cell
  325. Object Class ID:    cLongInteger
  326. Inherited?    No
  327. Modifiable or
  328. Non-modifiable?    Non-modifiable
  329. pValue
  330. Description:    The data in the cell
  331. Object Class ID:    cText
  332. Inherited?    No
  333. Modifiable or 
  334. Non-modifiable?    Modifiable
  335. Element Classes    None
  336. Apple Events    Apple events from the Core suite:
  337. Do Objects Exist    Inherited from cObject
  338. Get Data    Inherited from cObject
  339. Get Data Size    Inherited from cObject
  340. Set Data    Inherited from cObject
  341. Notes    The actual number of values for a particular cell is indicated by the pRepeatSize property of cCell, while the pValue property contains a list of values for that cell. The pRepeatSize property reports the number of items in a list, while the pDefaultType property reports the type of elements in the list. 
  342. Locking is used by a database in order to prevent two or more client applications from making simultaneous changes to stored data. Locking requires a client application to obtain an exclusive lock on a piece of data before being allowed to modify it. A client application can also request a shared lock in order to prevent other users from obtaining an exclusive lock. A shared lock does not allow the requesting client application to modify the data. For example, suppose one client application wants to run a report which requires each row to be read exactly once, in the order of a particular column. The client application can request a shared lock on the table object that will prevent any exclusive locks from being granted on the table object or any other objects contained in the table. A lock always applies to the locked object and to any objects contained in the locked object. Linkset tables that are contained in a row are an exception to this. (Refer to the section describing the cRow object class for the definition of linkset.)
  343. Locking a row should not lock every linked row, rather it should lock only the cells in the row. Once the table is locked, the client application can begin reading the rows with the assurance that no other client application will delete, or modify the rows in the table.
  344. The usual procedure is to lock a row before reading or updating it. If required, a client application can also lock individual cells, columns, whole tables, or databases. If a user is browsing through records, the client application can obtain a shared lock on the record that is being browsed and later upgrade the lock status to exclusive when the user decides to edit the record. To lock an object the client application simply sets the pLock property of the object.
  345. Timeout or deadlock errors may be returned in response to a request to lock an object. A deadlock occurs when two users try to lock the same two objects in the reverse order. For example, if user A locks object A and user B locks object B, it would not be possible for user A to lock object B because it was already locked by user B. It follows that user B will also encounter the same problem if it attempts to lock object A. The server resolves this problem by detecting the deadlock at the point where the last lock was requested.
  346. A timeout error occurs whenever a lock request issued by a client application is not used or referenced by the client application within a certain time frame. This causes the server to give up on the client application and issue a timeout error. Timing out a lock request has its own drawback. If the timeout is too short, the client application may just retry the lock request. This in turn may prevent the server from seeing the deadlock, because the cycle is always one request short. Because of this, database applications are encouraged to abort a transaction whenever a lock request is canceled. For example, when a Set Data Apple event is performed on a locked property, it could result in a request that returns an error message. In such a case, the application should abort the transaction and start over.
  347. Client applications cannot see the locked status obtained by other client applications. This is to discourage client applications from implementing their own polling mechanism for obtaining locks, such as polling until the status becomes kNoLock. This is not allowed because the server must maintain a complete list of pending lock requests in order to detect any deadlocks.
  348. On the other hand, a client application can read the pLock property of an object to find out the locked status of that object with respect to a particular client application or transaction. Only locks that were set by the client application are revealed; otherwise kNoLock is returned.
  349. Locks are used during transactions that operate on the data stored in a database. Since the data must be locked before it is changed, locks are usually obtained in the context of a transaction. If a lock is obtained in the context of a transaction, the server will normally require that the locks be retained until the transaction either ends normally or aborts. Thus, any attempt to release a lock by setting the pLock property to kNoLock will be ignored without returning an error. Furthermore, when the transaction ends or is aborted, the server will automatically release all locks obtained during the transaction.
  350. If a lock is obtained outside the context of any transaction, the lock must be released by setting pLock to kNoLock.
  351. The possible error conditions are:
  352. n    errAEDeadLock - a deadlock was detected. The transaction is aborted.
  353. n    errAELockRequestTimeout - a lock request timed out. The transaction is aborted.
  354. n    errAELockRequestTimeout - should be returned if a transaction remains inactive for a long period of time without any pending lock request, as in the case of the client application that has failed to continue the transaction, and no possible deadlocks exist. A well designed server would return this error only if the inactive transaction is blocking a lock request from an active transaction. This is a good approach for handling deadlocks that are not detected properly by the server, such as situations where the client applications are polling database attributes on their own. 
  355. Column—a column of cells from a table
  356. The cColumn object class is the class for the representation of a single column in a table.
  357. Superclass    cObject (Core suite)
  358. Default Descriptor    
  359. Type
  360.  
  361.  
  362. typeColumn
  363. Properties    
  364. pAccess
  365. Description:    Access privileges. (The value must be one of the following or an additive combination of: kCreateAccess, kDeleteAccess, kReadAccess, kUpdateAccess, or kWriteAccess.)
  366. Object Class ID:    enumAccess
  367. Inherited?    No
  368. Modifiable or 
  369. Non-modifiable?    Non-modifiable
  370. pBestType
  371. Description:    The descriptor type that can contain the most information from objects of this object class
  372. Object Class ID:    cType
  373. Inherited?    Yes, from cObject
  374. Modifiable or 
  375. Non-modifiable?    Non-modifiable
  376. pClass
  377. Description:    The four-character class ID for the object class
  378. Object Class ID:    cType
  379. Inherited?    Yes, from cObject
  380. Modifiable or 
  381. Non-modifiable?    Non-modifiable
  382. pDefaultType
  383. Description:    The default descriptor type for the object class
  384. Object Class ID:    cType
  385. Inherited?    Yes, from cObject
  386. Modifiable or 
  387. Non-modifiable?    Non-modifiable
  388. pFormula
  389. Description:    The formula for the cell (inherits or overrides the column's formula, if any)
  390. Object Class ID:    cText
  391. Inherited?    No
  392. Modifiable or 
  393. Non-modifiable?    Modifiable
  394. pLock
  395. Description:    The lock status of the object in the current transaction. (The value must be one of the following: kExclusiveLock, kNoLock, or kSharedLock.)
  396. Object Class ID:    enumLockTypes
  397. Inherited?    No
  398. Modifiable or 
  399. Non-modifiable?    Modifiable
  400. pName
  401. Description:    The name of the column
  402. Object Class ID:    cText
  403. Inherited?    No
  404. Modifiable or 
  405. Non-modifiable?    Modifiable
  406. pNullsOk
  407. Description:    Indicates whether nulls are allowed in the column
  408. Object Class ID:    cBoolean
  409. Inherited?    No
  410. Modifiable or 
  411. Non-modifiable?    Non-modifiable 
  412. pProtection
  413. Description:    Specifies whether the elements or pFormula property of the cell can be changed. (The value must be one of the following: kAEFormulaProtect, kAEReadOnly, or kAEReadWrite.)
  414. Object Class ID:    enumProtection
  415. Inherited?    No
  416. Modifiable or 
  417. Non-modifiable?    Modifiable
  418. pRepeating
  419. Description:    Indicates whether it is a repeating column. (The value must be one of the following: kAEFixedRepeat, kAESingleValued, or kAEVariableRepeat.)
  420. Object Class ID:    enumRepeatValues
  421. Inherited?    No
  422. Modifiable or 
  423. Non-modifiable?    Non-modifiable
  424. pRepeatSize
  425. Description:    Specifies the maximum number of values that can be stored in each cell of a column. For fixed repeat columns, this property indicates the number of values that can be stored in each cell of a column, whereas, for variable repeat columns, it indicates the maximum possible number of values that can be stored in a column. 
  426. Object Class ID:    cLongInteger
  427. Inherited?    No
  428. Modifiable or 
  429. Non-modifiable?    Non-modifiable
  430. pUniqueValue
  431. Description:    Indicates whether the values in this column have to be unique
  432. Object Class ID:    cBoolean
  433. Inherited?    No
  434. Modifiable or 
  435. Non-modifiable?    Non-modifiable 
  436. Element Classes
  437. cCell
  438. Description:    Cells in the column
  439. Inherited?    No
  440. Modifiable or 
  441. Non-modifiable?    Modifiable
  442. Key Forms:    formAbsolutePosition, formName, formPropertyID, formRange, formRelativePosition, formTest
  443. cColumn
  444. Description:    Columns contained in a grouped column, that is, a column that contains a number of other columns.
  445. Inherited?    No
  446. Modifiable or 
  447. Non-modifiable?    Non-modifiable
  448. Key Forms:    formAbsolutePosition, formName, formPropertyID, formRange, formRelativePosition, formTest
  449. Apple Events    Apple events from the Core suite:
  450. Clone    Inherited from cObject
  451. Count Elements    Inherited from cObject
  452. Delete    Inherited from cObject
  453. Do Objects Exist    Inherited from cObject
  454. Get Class Info    Inherited from cObject
  455. Get Data    Inherited from cObject
  456. Get Data Size    Inherited from cObject
  457. Move    Inherited from cObject
  458. Set Data    Inherited from cObject
  459. Apple events from the Database suite:
  460. Group    Not inherited
  461. Notes    A column may be specified as a repeating column, a grouped column, or a repeating grouped column. A repeating column is a column that can contain a list of values instead of a single value. There are three types of repeating columns: kAESingleValued, which is a single number; kAEFixedRepeat, which is a column with the same number of values in each cell; and kAEVariableRepeat which is a column where each cell can have a different number of values. A grouped column contains no data itself but contains a number of other columns. A repeating grouped column contains a list of values for a number of other columns.
  462. Database—a database
  463. The cDatabase object class is the class for database tables, each of which contains rows 
  464. and columns.
  465. Superclass    cObject (Core suite)
  466. Default Descriptor    
  467. Type
  468.  
  469.  
  470. typeAEDescList
  471. Properties    
  472. pAccess
  473. Description:    Access privileges. (The value must either be one of the following or an additive combination of: kCreateAccess, kDeleteAccess, kReadAccess, kUpdateAccess, or kWriteAccess.)
  474. Object Class ID:    enumAccess
  475. Inherited?    No
  476. Modifiable or 
  477. Non-modifiable?    Non-modifiable
  478. pBestType
  479. Description:    The descriptor type that can contain the most information from objects of this object class
  480. Object Class ID:    cType
  481. Inherited?    Yes, from cObject
  482. Modifiable or 
  483. Non-modifiable?    Non-modifiable
  484. pClass
  485. Description:    The four-character class ID for the object class
  486. Object Class ID:    cType
  487. Inherited?    Yes, from cObject
  488. Modifiable or 
  489. Non-modifiable?    Non-modifiable
  490. pDefaultType
  491. Description:    The default descriptor type for the object class
  492. Object Class ID:    cType
  493. Inherited?    Yes, from cObject
  494. Modifiable or 
  495. Non-modifiable?    Non-modifiable
  496. pLock
  497. Description:    The lock status of the object in the current transaction. (The value must be one of the following: kExclusiveLock, kNoLock, or kSharedLock.)
  498. Object Class ID:    enumLockTypes
  499. Inherited?    No
  500. Modifiable or 
  501. Non-modifiable?    Modifiable
  502. pName
  503. Description:    The name of the cell
  504. Object Class ID:    cText
  505. Inherited?    No
  506. Modifiable or 
  507. Non-modifiable?    Modifiable
  508. Element Classes
  509. cSession
  510. Description:    Active sessions using this database
  511. Inherited?    No
  512. Modifiable or 
  513. Non-modifiable?    Modifiable
  514. Key Forms:    None
  515. cTable
  516. Description:    Represents tables in the database
  517. Inherited?    No
  518. Modifiable or 
  519. Non-modifiable?    Non-modifiable
  520. Key Forms:    formAbsolutePosition, formName, formPropertyID, formRange, formRelativePosition, formTest 
  521. Apple Events    Apple events from the Core suite:
  522. Clone    Inherited from cObject
  523. Count Elements    Inherited from cObject
  524. Create Element    Inherited from cObject
  525. Delete    Inherited from cObject
  526. Do Objects Exist    Inherited from cObject
  527. Get Class Info    Inherited from cObject
  528. Get Data    Inherited from cObject
  529. Get Data Size    Inherited from cObject
  530. Set Data    Inherited from cObject
  531. Notes    The Get Class Info Apple event should be sent to determine if a database needs a session. If the database can contain a session but none are present, then the client application must create a session with the Create Element Apple event. If the database needs a different session than its containing DBMS, then it should require a new cSession object; otherwise one should not be listed in Get Class Info. If the database cannot contain a session object, then no session is necessary to use the database.
  532. DBMS—a database management system
  533. The cDBMS object class is the class for a particular brand of database management system. 
  534. Superclass    cObject (Core suite)
  535. Default Descriptor    
  536. Type
  537.  
  538.  
  539. typeAEDescList
  540. Properties    
  541. pBestType
  542. Description:    The descriptor type that can contain the most information from objects of this object class
  543. Object Class ID:    cType
  544. Inherited?    Yes, from cObject
  545. Modifiable or 
  546. Non-modifiable?    Non-modifiable
  547. pClass
  548. Description:    The four-character class ID for the object class
  549. Object Class ID:    cType
  550. Inherited?    Yes, from cObject
  551. Modifiable or 
  552. Non-modifiable?    Non-modifiable
  553. pDefaultType
  554. Description:    The default descriptor type for the object class
  555. Object Class ID:    cType
  556. Inherited?    Yes, from cObject
  557. Modifiable or 
  558. Non-modifiable?    Non-modifiable
  559. pName
  560. Description:    The name of the cell
  561. Object Class ID:    cText
  562. Inherited?    No
  563. Modifiable or 
  564. Non-modifiable?    Modifiable
  565. Element Classes
  566. cDatabase
  567. Description:    Databases in the DBMS
  568. Inherited?    No
  569. Modifiable or 
  570. Non-modifiable?    Non-modifiable
  571. Key Forms:    formAbsolutePosition, formName, formPropertyID, formRange, formRelativePosition, formTest
  572. cSession
  573. Description:    Active sessions using this DBMS
  574. Inherited?    No
  575. Modifiable or 
  576. Non-modifiable?    Modifiable
  577. Key Forms:    None
  578. Apple Events    Apple events from the Core suite:
  579. Count Elements    Inherited from cObject
  580. Do Objects Exist    Inherited from cObject
  581. Get Class Info    Inherited from cObject
  582. Get Data    Inherited from cObject
  583. Get Data Size    Inherited from cObject
  584. Set Data    Inherited from cObject
  585. Notes    Some DBMS brands do not require any specific connection and can use the cSession information from their cHost object if desired. Other DBMS brands may require the user to log in. Determine this with a Get Class Info event on the cHost object. If cSession is present, then send a Create Element event with a cSession object containing user name information. Once a DBMS is selected, the databases accessible by that DBMS brand can be selected.
  586. Some servers may not require a DBMS brand to be selected. If a server contains no DBMSs, the container for the database may be specified as the host or NULL if there are no hosts. If a server contains only one DBMS brand, then that DBMS should be specified as the container for any databases.
  587. Host—a network host containing a DBMS or database
  588. The cHost object class is the class for a computer that runs one or more DBMS brands. If the DBMS is being accessed over a network, the server becomes the network host. 
  589. Superclass    cObject (Core suite)
  590. Default Descriptor    
  591. Type
  592.  
  593.  
  594. typeAEDescList
  595. Properties    
  596. pBestType
  597. Description:    The descriptor type that can contain the most information from objects of this object class
  598. Object Class ID:    cType
  599. Inherited?    Yes, from cObject
  600. Modifiable or 
  601. Non-modifiable?    Non-modifiable
  602. pClass
  603. Description:    The four-character class ID for the object class
  604. Object Class ID:    cType
  605. Inherited?    Yes, from cObject
  606. Modifiable or 
  607. Non-modifiable?    Non-modifiable
  608. pDefaultType
  609. Description:    The default descriptor type for the object class
  610. Object Class ID:    cType
  611. Inherited?    Yes, from cObject
  612. Modifiable or 
  613. Non-modifiable?    Non-modifiable
  614. pName
  615. Description:    The name of the host
  616. Object Class ID:    cText
  617. Inherited?    No
  618. Modifiable or 
  619. Non-modifiable?    Modifiable
  620. Element Classes
  621. cDatabase
  622. Description:    Databases in this host
  623. Inherited?    No
  624. Modifiable or 
  625. Non-modifiable?    Non-modifiable
  626. Key Forms:    formAbsolutePosition, formName, formPropertyID, formRange, formRelativePosition, formTest
  627. cDBMS
  628. Description:    DBMS brands handled by this host
  629. Inherited?    No
  630. Modifiable or 
  631. Non-modifiable?    Non-modifiable
  632. Key Forms:    formAbsolutePosition, formName, formPropertyID, formRange, formRelativePosition, formTest
  633. cSession
  634. Description:    Active sessions using this host
  635. Inherited?    No
  636. Modifiable or 
  637. Non-modifiable?    Modifiable
  638. Key Forms:    None
  639. Apple Events    Apple events from the Core suite:
  640. Count Elements    Inherited from cObject
  641. Do Objects Exist    Inherited from cObject
  642. Get Class Info    Inherited from cObject
  643. Get Data    Inherited from cObject
  644. Get Data Size    Inherited from cObject
  645. Set Data    Inherited from cObject
  646. Notes    Some hosts do not require any specific connection. Other hosts may require the user to log in. Determine this with the Get Class Info event on the cHost object. If cSession is present, send a Create Element event with a cSession object containing user name information. Once a host is selected, the DBMS brands or databases contained within that host can be selected.
  647. Some servers may not require a host to be selected. If a server contains no hosts, the container for a DBMS may be specified as NULL. If a server contains only one host, then that host should be specified as the container for any DBMS.
  648. Some servers may not require a DBMS brand to be selected. If a server contains no DBMSs, the container for a database may be specified as the host or NULL if there are no hosts.
  649. Key—an indexed column
  650. The cKey object class is the class for a collection of indexed columns that can be searched or sorted faster than regular columns. 
  651. Superclass    cObject (Core suite)
  652. Default Descriptor    
  653. Type
  654.  
  655.  
  656. typeKey
  657. Properties    
  658. pBestType
  659. Description:    The descriptor type that can contain the most information from objects of this object class
  660. Object Class ID:    cType
  661. Inherited?    Yes, from cObject
  662. Modifiable or 
  663. Non-modifiable?    Non-modifiable
  664. pClass
  665. Description:    The four-character class ID for the object class
  666. Object Class ID:    cType
  667. Inherited?    Yes, from cObject
  668. Modifiable or 
  669. Non-modifiable?    Non-modifiable
  670. pCurrentSort
  671. Description:    Sort type constant
  672. Object Class ID:    cShortInteger
  673. Inherited?    No
  674. Modifiable or 
  675. Non-modifiable?    Non-modifiable
  676. pDefaultType
  677. Description:    The default descriptor type for the object class
  678. Object Class ID:    cType
  679. Inherited?    Yes, from cObject
  680. Modifiable or 
  681. Non-modifiable?    Non-modifiable
  682. pName
  683. Description:    The name of the key
  684. Object Class ID:    cText
  685. Inherited?    No
  686. Modifiable or 
  687. Non-modifiable?    Modifiable
  688. pPrimaryKey
  689. Description:    Indicates that this key is the primary key for a table. There are no requirements for a primary key to exist, but for any table only one primary key may exist. If pPrimaryKey is TRUE, then the key should also be unique with pUniqueValue as TRUE.
  690. Object Class ID:    cBoolean
  691. Inherited?    No
  692. Modifiable or    
  693. Non-modifiable?    Non-modifiable
  694. pUniqueValue
  695. Description:    Indicates if the key is guaranteed to be unique for every row in the table. If pUniqueValue is TRUE, then any attempt to create a new row with duplicate values or to modify an existing row to contain duplicate values will result in an errNotUnique error.
  696. Object Class ID:    cBoolean
  697. Inherited?    No
  698. Modifiable or 
  699. Non-modifiable?    Modifiable
  700. Element Classes
  701. cColumn
  702. Description:    Columns in the key
  703. Inherited?    No
  704. Modifiable or 
  705. Non-modifiable?    Modifiable
  706. Key Forms:    formAbsolutePosition, formName, formPropertyID, formRange, formRelativePosition, formTest
  707. Apple Events    Apple events from the Core suite:
  708. Clone    Inherited from cObject
  709. Count Elements    Inherited from cObject
  710. Create Element    Inherited from cObject
  711. Delete    Inherited from cObject
  712. Do Objects Exist    Inherited from cObject
  713. Get Class Info    Inherited from cObject
  714. Get Data    Inherited from cObject
  715. Get Data Size    Inherited from cObject
  716. Move    Inherited from cObject
  717. Set Data    Inherited from cObject
  718. Notes    The primary key for a table is a column or a combination of columns that uniquely identifies each row. The primary key is almost always indexed and is the preferred key for relational databases. There may be many different ways by which one can uniquely identify a row, hence there may be many possible candidates for the primary key. However, only one key can be the primary key. If more than one key satisfies the uniqueness requirement for a table, then the server must make an arbitrary decision as to which key will be the primary key.
  719. Databases that do not support key fields should simply return a value equivalent to zero for the number of keys in a table and fail when asked to create keys. Since a key can contain multiple columns, this is the way to specify concatenated keys. The column elements should appear in their order of importance. The pCurrentSort property should contain the same constant used in the Sort event.
  720. Row—a row of cells from a table
  721. The cRow object class is the class for a single record in a table. 
  722. Superclass    cObject (Core suite)
  723. Default Descriptor    
  724. Type
  725.  
  726.  
  727. typeRow
  728. Properties    
  729. pAccess
  730. Description:    Access privileges. (The value must be one of the following or an additive combination of: kCreateAccess, kDeleteAccess, kReadAccess, kUpdateAccess, or kWriteAccess.)
  731. Object Class ID:    enumAccess
  732. Inherited?    No
  733. Modifiable or 
  734. Non-modifiable?    Non-modifiable
  735. pBestType
  736. Description:    The descriptor type that can contain the most information from objects of this object class
  737. Object Class ID:    cType
  738. Inherited?    Yes, from cObject
  739. Modifiable or 
  740. Non-modifiable?    Non-modifiable
  741. pClass
  742. Description:    The four-character class ID for the object class
  743. Object Class ID:    cType
  744. Inherited?    Yes, from cObject
  745. Modifiable or 
  746. Non-modifiable?    Non-modifiable
  747. pDefaultType
  748. Description:    The default descriptor type for the object class
  749. Object Class ID:    cType
  750. Inherited?    Yes, from cObject
  751. Modifiable or 
  752. Non-modifiable?    Non-modifiable
  753. pID
  754. Description:    A unique ID for this row. Internally the ID property can be of any desired type. The Object Class ID is listed as cText so that the ID can be handled by scripting systems. Most of the common ID types should be easily coerced to and from text.
  755. Object Class ID:    cText
  756. Inherited?    No 
  757. Modifiable or 
  758. Non-modifiable?    Non-modifiable 
  759. pLock
  760. Description:    The lock status of the object in the current transaction. (The value must be one of the following: kExclusiveLock, kNoLock, or kSharedLock.)
  761. Object Class ID:    enumLockTypes
  762. Inherited?    No
  763. Modifiable or 
  764. Non-modifiable?    Modifiable
  765. pName
  766. Description:    The name of the row
  767. Object Class ID:    cText
  768. Inherited?    No
  769. Modifiable or 
  770. Non-modifiable?    Modifiable
  771. pProtection
  772. Description:    Specifies whether the elements or pFormula property of the cell can be changed. (The value must be one of the following: kAEFormulaProtect, kAEReadOnly, or kAEReadWrite.)
  773. Object Class ID:    enumProtection
  774. Inherited?    No
  775. Modifiable or 
  776. Non-modifiable?    Modifiable
  777. Element Classes
  778. cCell
  779. Description:    Cells in the column
  780. Inherited?    No 
  781. Modifiable or 
  782. Non-modifiable?    Modifiable
  783. Key Forms:    formAbsolutePosition, formName, formPropertyID, formRange, formRelativePosition, formTest 
  784. cTable
  785. Description:    Name of the linkset
  786. Inherited?    No
  787. Modifiable or 
  788. Non-modifiable?    Modifiable
  789. Key Forms:    formAbsolutePosition, formName, formPropertyID, formRange, formRelativePosition, formTest
  790. Apple Events    Apple events from the Core suite:
  791. Clone    Inherited from cObject
  792. Count Elements    Inherited from cObject
  793. Create Element    Inherited from cObject
  794. Delete    Inherited from cObject
  795. Do Objects Exist    Inherited from cObject
  796. Get Class Info    Inherited from cObject
  797. Get Data    Inherited from cObject
  798. Get Data Size    Inherited from cObject
  799. Move    Inherited from cObject
  800. Set Data    Inherited from cObject
  801. Apple events from the Database suite:
  802. Sort    Not inherited
  803. Notes    Each row of a table is structured identically, except that variable repeating columns can have a different repeat value for each row. Rows may contain a table of other rows, representing child rows linked to a parent row. However, the name of the cTable object contained in a cRow object is the same as the name of the linkset and not the name of the child row’s container.
  804. A linkset is an abstract concept that can be defined as a single parent row with zero or more related child rows. To understand the concept of linksets, consider the example of a customer-invoice relational database that consists of an invoices table and a customer table. The customer table has a primary “customer account,” and the invoice table has a column that refers to the customer by his or her account. To relate an invoice and a customer, the database stores the customer’s account number in the customer account column of the invoice row. Whenever data is to be accessed, the database can easily locate the customer row by using the customer account number. Each customer record will “own” a linkset, where the child records in each linkset are those records that are related to the particular parent record.
  805. In the case of a network database, records are related through explicit operations that add or remove child records from a parent record. These operations do not create or delete any records, instead, they maintain the relationships between the records. The implementation may be a linked list of child records. In the case of the customer-invoice database, each child record invoice has a reference to the next and previous child record in addition to the parent record. 
  806. A relational database can map linksets by performing a search operation to find all of the child rows. Note that in a relational database the “linking” field is usually indexed. The customer account field in the invoices table is indexed in order to allow fast retrieval of all invoices related to a particular customer. A network database will simply map the existing sets to the linkset objects.
  807. Linksets are easily mapped into the Database suite by allowing the parent row to contain a table object, which in turn contains each child row. The name of the table is taken from the linkset name, which in turn is taken from the naming convention in a particular database.
  808. Some relational databases will not explicitly identify where the relationship exists. These databases have no linksets and relationships are defined by the users of the database performing explicit find operations, which can also be executed through the Apple event interface.
  809. RowSelection—a saved selection of rows
  810. The cRowSelection object class is the class that represents an arbitrary selection of rows in a DBMS. Since some selections may be difficult or time consuming to collect, this object is intended as a way to save arbitrary collections of rows.
  811. Superclass    cTable (Database suite)
  812. Default Descriptor    
  813. Type
  814.  
  815.  
  816. typeRowSelection
  817. Properties    
  818. pAccess
  819. Description:    Access privileges. (The value must be one of the following or an additive combination of: kCreateAccess, kDeleteAccess, kReadAccess, kUpdateAccess, or kWriteAccess.)
  820. Object Class ID:    enumAccess
  821. Inherited?    Yes
  822. Modifiable or 
  823. Non-modifiable?    Non-modifiable
  824. pBestType
  825. Description:    The descriptor type that can contain the most information from objects of this object class
  826. Object Class ID:    cType
  827. Inherited?    Yes, from cObject
  828. Modifiable or 
  829. Non-modifiable?    Non-modifiable
  830. pClass
  831. Description:    The four-character class ID for the object class
  832. Object Class ID:    cType
  833. Inherited?    Yes, from cObject
  834. Modifiable or 
  835. Non-modifiable?    Non-modifiable
  836. pDefaultType
  837. Description:    The default descriptor type for the object class
  838. Object Class ID:    cType
  839. Inherited?    Yes, from cObject
  840. Modifiable or 
  841. Non-modifiable?    Non-modifiable
  842. pKind
  843. Description:    Defines the property as a cursor, linkset, table, or view. (The value must be one of the following: kCursor, kLinkset, kTable, or kView.)
  844. Object Class ID:    enumTableTypes
  845. Inherited?    Yes
  846. Modifiable or 
  847. Non-modifiable?    Non-modifiable
  848. pLock
  849. Description:    The lock status of the object in the current transaction. (The value must be one of the following: kExclusiveLock, kNoLock, or kSharedLock.)
  850. Object Class ID:    enumLockTypes
  851. Inherited?    No
  852. Modifiable or 
  853. Non-modifiable?    Modifiable
  854. pName
  855. Description:    The name of the table
  856. Object Class ID:    cText
  857. Inherited?    No
  858. Modifiable or 
  859. Non-modifiable?    Modifiable
  860. pProtection
  861. Description:    Specifies whether the elements or pFormula property of the cell can be changed. (The value must be one of the following: kAEFormulaProtect, kAEReadOnly, or kAEReadWrite.)
  862. Object Class ID:    enumProtection
  863. Inherited?    Yes
  864. Modifiable or 
  865. Non-modifiable?    Modifiable
  866. pRowIDs
  867. Description:    A list of row IDs for the rows in this selection
  868. Object Class ID:    cAEList
  869. Inherited?    No
  870. Modifiable or 
  871. Non-modifiable?    Non-modifiable
  872. Element Classes
  873. cColumn
  874. Description:    Columns in the table
  875. Inherited?    Yes
  876. Modifiable or 
  877. Non-modifiable?    Modifiable
  878. Key Forms:    formAbsolutePosition, formName, formPropertyID, formRange, formRelativePosition, formTest 
  879. cKey
  880. Description:    Key or indexed columns in this table
  881. Inherited?    Yes
  882. Modifiable or 
  883. Non-modifiable?    Modifiable
  884. Key Forms:    formAbsolutePosition, formName, formPropertyID, formRange, formRelativePosition, formTest
  885. cRow
  886. Description:    Rows in the table
  887. Inherited?    Yes
  888. Modifiable or 
  889. Non-modifiable?    Modifiable
  890. Key Forms:    formAbsolutePosition, formName, formPropertyID, formRange, formRelativePosition, formTest
  891. Apple Events    Apple events from the Core suite:
  892. Clone    Inherited from cObject
  893. Count Elements    Inherited from cObject
  894. Create Element    Inherited from cObject
  895. Delete    Inherited from cObject
  896. Do Objects Exist    Inherited from cObject
  897. Get Class Info    Inherited from cObject
  898. Get Data    Inherited from cObject
  899. Get Data Size    Inherited from cObject
  900. Set Data    Inherited from cObject
  901. Apple events from the Database suite:
  902. Sort    Not inherited
  903. Notes    To create a cRowSelection object, use a Create Element event with keyAEData parameter being typeRowSelection. The typeRowSelection parameter contains an object specifier that resolves to a set of rows. Once created, a cRowSelection object can be used as a reference to the rows without the tests that were required in the original object specification.
  904. Selections consist of rows in the form of a table. The selection object can be a list of row IDs that are used to reference the actual rows in their original locations. The selection object can also be used as if it were a table. Although the actual implementation is up to the server, a selection should be similar to a table made up of the rows named in the pRowIDs property when the elements are referenced. 
  905. A selection should also be able to return a list of row IDs when 
  906. asked for the pRowIDs property.
  907. Session—an active session connected to a host, DBMS, or database
  908. The cSession object class is the class that describes the user of the host, DBMS, or database. It contains access information, such as the user name, account, and the password used to access the object. It uses a value of type boolean (TRUE/FALSE) to determine whether the session is conducted as an unauthenticated guest or through the user information. The session ID is a unique session identifier.
  909. Superclass    cObject (Core suite)
  910. Default Descriptor    
  911. Type
  912.  
  913.  
  914. typeSession
  915. Properties    
  916. pAccount
  917. Description:    An optional account number
  918. Object Class ID:    cText
  919. Inherited?    No 
  920. Modifiable or 
  921. Non-modifiable?    Modifiable 
  922. pBestType
  923. Description:    The descriptor type that can contain the most information from objects of this object class
  924. Object Class ID:    cType
  925. Inherited?    Yes, from cObject
  926. Modifiable or 
  927. Non-modifiable?    Non-modifiable
  928. pClass
  929. Description:    The four-character class ID for the object class
  930. Object Class ID:    cType
  931. Inherited?    Yes, from cObject
  932. Modifiable or 
  933. Non-modifiable?    Non-modifiable
  934. pDefaultType
  935. Description:    The default descriptor type for the object class
  936. Object Class ID:    cType
  937. Inherited?    Yes, from cObject
  938. Modifiable or 
  939. Non-modifiable?    Non-modifiable
  940. pGuest
  941. Description:    Whether the user name and account is used to log in or whether the user is signed in at the default guest level
  942. Object Class ID:    cBoolean
  943. Inherited?    No 
  944. Modifiable or 
  945. Non-modifiable?    Modifiable 
  946. pID
  947. Description:    A unique ID for this session. Internally the ID property can be of any desired type. The Object Class ID is listed as cText so that the ID can be handled by scripting systems. Most of the common ID types should be easily coerced to and from text.
  948. Object Class ID:    cText
  949. Inherited?    No 
  950. Modifiable or 
  951. Non-modifiable?    Non-modifiable 
  952. pOpenTransaction
  953. Description:    Current transaction(s) list
  954. Object Class ID:    cLongInteger
  955. Inherited?    No 
  956. Modifiable or 
  957. Non-modifiable?    Non-modifiable 
  958. pPassword
  959. Description:    The password supplied to authenticate this session
  960. Object Class ID:    cText
  961. Inherited?    No 
  962. Modifiable or 
  963. Non-modifiable?    Modifiable 
  964. pUser
  965. Description:    The user name used to access the DB
  966. Object Class ID:    cText
  967. Inherited?    No 
  968. Modifiable or 
  969. Non-modifiable?    Non-modifiable 
  970. Element Classes    None
  971. Apple Events    Apple events from the Core suite:
  972. Count Elements    Inherited from cObject
  973. Create Element    Inherited from cObject
  974. Delete    Inherited from cObject
  975. Do Objects Exist    Inherited from cObject
  976. Get Class Info    Inherited from cObject
  977. Get Data    Inherited from cObject
  978. Get Data Size    Inherited from cObject
  979. Set Data    Inherited from cObject
  980. Apple events from the Database suite:
  981. Begin Transaction    Not inherited
  982. Notes    One way to reference a session is to use the Begin Transaction event with a session specifier. A session’s pOpenTransaction property is undefined until the session object is specified in the Begin Transaction event. The transaction ID is returned by the Begin Transaction event. Since sessions are used for authentication, it does not make sense for a server to allow read access to its data. This means that any request for session properties should return an error. The server may allow writing to the properties if session information can be changed; otherwise, they should only be specified when the session is created. 
  983. Every event in a transaction can be authenticated easily without the overhead of a specific session reference. However, there are certain situations that require a session for a specific event that is not part of a transaction. These situations require a session parameter to be added to an arbitrary event. This parameter should be:
  984. keyAESession
  985. Description:    A session reference for authentication
  986. Descriptor Type:    typeObjectSpecifier
  987. Required or Optional?    Optional
  988. If you want these events to be parsed by a scripting system, you must add this parameter to the application for each event on which you use it. This may require you to replicate the entire Core suite, or whatever parts of it you add this parameter to, in your private application; this is why the transaction method is preferred.
  989. Sessions are opened upon creation of the cSession object with the Create Element event. The initial values are provided in the Create Element event’s typeSession record, but they may be rejected based on the server’s verification process. If the values are rejected, then the session is not created, and the Create Element event returns an error through the keyErrorString parameter. If the Create Element event succeeds, then the returned object specifier can be saved and used for future references to this session.
  990. Some objects may not require a session element. Use the Get Class Info event or an object that has a cSession element to see if it actually requires one. If it does, you must create the session object with Create Element before using the object. All of the properties of a session are optional, depending on the server’s needs. A Get Class Info event should always be sent to determine what information is necessary to validate a session. Sessions may vary from object to object; a cHost session may be different than a cDatabase session. 
  991. If a session parameter is expected on any event but not present, the server should attempt to treat the request as a Guest access with the corresponding public privileges if available. Guest sessions can also be requested explicitly by creating a session with the pGuest property initialized to TRUE. The server must return errAEPrivilegeError in the reply keyword keyErrorNumber and a message in the keyErrorString keyword if Guest sessions are not allowed or if any specified session data is invalid.
  992. The session ID property is documented as text since any ID should be representable as text. A server can use any data type for the session ID since the server is typically the only one referencing it. All client applications should use the object reference to the session that is returned by Create Element to refer to the session. Although this is a simple object specifier referring to the session by ID, it is opaque to a client application. A client application only sees an arbitrary object specifier. 
  993. Table—a table of rows, columns, and cells from a database
  994. The cTable object class is the class for tables. A table is a collection of rows and columns 
  995. in a database.
  996. Superclass    cObject (Core suite)
  997. Default Descriptor    
  998. Type
  999.  
  1000.  
  1001. typeTable
  1002. Properties    
  1003. pAccess
  1004. Description:    Access privileges. (The value must be one of the following or an additive combination of: kCreateAccess, kDeleteAccess, kReadAccess, kUpdateAccess, or kWriteAccess.)
  1005. Object Class ID:    enumAccess
  1006. Inherited?    No
  1007. Modifiable or 
  1008. Non-modifiable?    Non-modifiable
  1009. pBestType
  1010. Description:    The descriptor type that can contain the most information from objects of this object class
  1011. Object Class ID:    cType
  1012. Inherited?    Yes, from cObject
  1013. Modifiable or 
  1014. Non-modifiable?    Non-modifiable
  1015. pClass
  1016. Description:    The four-character class ID for the object class
  1017. Object Class ID:    cType
  1018. Inherited?    Yes, from cObject
  1019. Modifiable or 
  1020. Non-modifiable?    Non-modifiable
  1021. pDefaultType
  1022. Description:    The default descriptor type for the object class
  1023. Object Class ID:    cType
  1024. Inherited?    Yes, from cObject
  1025. Modifiable or 
  1026. Non-modifiable?    Non-modifiable
  1027. pKind
  1028. Description:    Defines the property as a cursor, linkset, table, or view. (The value must be one of the following: kCursor, kLinkset, kTable, or kView.)
  1029. Object Class ID:    enumTableTypes
  1030. Inherited?    No
  1031. Modifiable or 
  1032. Non-modifiable?    Non-modifiable
  1033. pLock
  1034. Description:    The lock status of the object in the current transaction. (The value must be one of the following: kExclusiveLock, kNoLock, or kSharedLock.)
  1035. Object Class ID:    enumLockTypes
  1036. Inherited?    No
  1037. Modifiable or 
  1038. Non-modifiable?    Modifiable
  1039. pName
  1040. Description:    The name of the table
  1041. Object Class ID:    cText
  1042. Inherited?    No
  1043. Modifiable or 
  1044. Non-modifiable?    Modifiable
  1045. pProtection
  1046. Description:    Specifies whether the elements or pFormula property of the cell can be changed. (The value must be one of the following: kAEFormulaProtect, kAEReadOnly, or kAEReadWrite.)
  1047. Object Class ID:    enumProtection
  1048. Inherited?    No
  1049. Modifiable or 
  1050. Non-modifiable?    Modifiable
  1051. Element Classes
  1052. cCell
  1053. Description:    Cells in the table
  1054. Inherited?    No
  1055. Modifiable or 
  1056. Non-modifiable?    Modifiable
  1057. Key Forms:    formAbsolutePosition, formName, formPropertyID, formRange, formRelativePosition, formTest 
  1058. cColumn
  1059. Description:    Columns in the table
  1060. Inherited?    No
  1061. Modifiable or 
  1062. Non-modifiable?    Modifiable
  1063. Key Forms:    formAbsolutePosition, formName, formPropertyID, formRange, formRelativePosition, formTest 
  1064. cKey
  1065. Description:    Key or indexed columns in this table
  1066. Inherited?    No
  1067. Modifiable or 
  1068. Non-modifiable?    Modifiable
  1069. Key Forms:    formAbsolutePosition, formName, formPropertyID, formRange, formRelativePosition, formTest 
  1070. cRow
  1071. Description:    Rows in the table
  1072. Inherited?    No
  1073. Modifiable or 
  1074. Non-modifiable?    Modifiable
  1075. Key Forms:    formAbsolutePosition, formName, formPropertyID, formRange, formRelativePosition, formTest 
  1076. Apple Events    Apple events from the Core suite:
  1077. Clone    Inherited from cObject
  1078. Count Elements    Inherited from cObject
  1079. Create Element    Inherited from cObject
  1080. Delete    Inherited from cObject
  1081. Do Objects Exist    Inherited from cObject
  1082. Get Class Info    Inherited from cObject
  1083. Get Data    Inherited from cObject
  1084. Get Data Size    Inherited from cObject
  1085. Move    Inherited from cObject
  1086. Set Data    Inherited from cObject
  1087. Apple events from the Database suite:
  1088. Sort    Not inherited
  1089. Descriptor types defined in the Database suite
  1090. The descriptor types defined in the Database suite are described in the following sections. Table 3 lists these descriptor types.
  1091. n    Table 3    Descriptor types defined in the Database suite
  1092. Descriptor type    Description
  1093. typeCell    A cell object
  1094. typeColumn    A column object
  1095. typeKey    A key fields object
  1096. typeRow    A row object
  1097. typeRowSelection    A row selection object
  1098. typeSession    A session object
  1099. typeTable    A table object
  1100. typeCell—a cell object
  1101. A typeCell descriptor record contains data to create or retrieve a cCell object.
  1102. Description    To create a typeCell descriptor record, you coerce an Apple event record containing the following fields into the equivalent typeCell descriptor record.
  1103. Keyword    Descriptor type    Description
  1104. keyAEData    typeAEList    A list of values in the cell with the format described by keyAEDefaultType
  1105. keyAEDefaultType    typeType    The default data type
  1106. keyAEFormula    typeChar    The cell’s formula
  1107. keyAEName    typeChar    The name of the cell
  1108. keyAEProtection    typeEnumeration    The formula’s protection
  1109. keyAERepeatSize    typeLongInteger    The number of values in keyAEData list
  1110. Note that the Apple Event Manager can coerce any Apple event record into any other descriptor type. A special coercion handler is 
  1111. not required.
  1112. Data Size    Variable
  1113. typeColumn—a column object
  1114. A typeColumn descriptor record contains the data needed to create or retrieve a cColumn object.
  1115. Description    To create a typeColumn descriptor record, you coerce an Apple event record containing the following fields into the equivalent typeColumn descriptor record.
  1116. Keyword    Descriptor type        Description
  1117. keyAEAccess    typeEnumeration    Access privileges
  1118. keyAECellList    typeAEList    The column values and formulas as a list of typeCell descriptors
  1119. keyAEFormula    typeChar    The formula for the column
  1120. keyAEName    typeChar    The name of this row
  1121. keyAENullsOK    typeBoolean    Indicates whether Nulls are allowed
  1122. keyAEProtection    typeEnumeration    The formula privileges
  1123. keyAERepeating    typeEnumeration    Indicates whether it is a repeating column. (kAEFixedRepeat, kAESingleValued, or kAEVariableRepeat.)
  1124. keyAERepeatSize    typeLongInteger    Number of times to repeat
  1125. keyAEUniqueValue    typeBoolean    Indicates whether values in this column have to be unique
  1126. Note that the Apple Event Manager can coerce any Apple event record into any other descriptor type. A special coercion handler is 
  1127. not required.
  1128. Data Size    Variable
  1129. typeKey—a key fields object
  1130. A typeKey descriptor record contains the data to create or retrieve a cKey object.
  1131. Description    To create a typeKey descriptor record, you coerce an Apple event record containing the following fields into the equivalent typeKey descriptor record.
  1132. Keyword    Descriptor type    Description
  1133. keyAEColumnList    typeAEList    A list of column object specifiers
  1134. keyAECurrentSort    typeShortInteger    The current sort constants
  1135. keyAEName    typeChar    The name of the key
  1136. keyAEPrimaryKey    typeBoolean    Indicates whether the key is the primary key
  1137. keyAEUniqueValue    typeBoolean    Indicates whether the key is unique
  1138. Note that the Apple Event Manager can coerce any Apple event record into any other descriptor type. A special coercion handler is 
  1139. not required.
  1140. Data Size    Variable
  1141. typeRow—a row object
  1142. A typeRow descriptor record contains data to create or retrieve a cRow object class.
  1143. Description    To create a typeRow descriptor record, you coerce an Apple event record containing the following fields into the equivalent typeRow descriptor record.
  1144. Keyword    Descriptor type    Description
  1145. keyAEAccess    typeEnumeration    The access privileges
  1146. keyAECellList    typeAEList    The row values and formulas as a list of typeCell descriptors
  1147. keyAEID    typeChar    The permanent ID number for this row 
  1148. keyAEName    typeChar    The name of this row
  1149. keyAEProtection    typeEnumeration    The formula privileges
  1150. Note that the Apple Event Manager can coerce any Apple event record into any other descriptor type. A special coercion handler is 
  1151. not required.
  1152. Data Size    Variable
  1153. typeRowSelection—a row selection object
  1154. A typeRowSelection descriptor record contains the data to create or retrieve a cSession object. Information about existing sessions cannot be obtained from a typeRowSelection descriptor record.
  1155. Description    To create a typeRowSelection descriptor record, you coerce an Apple event record containing the following fields into the equivalent typeRowSelection descriptor record.
  1156. Keyword    Descriptor type    Description
  1157. keyAEAccess    typeEnumeration    The access privileges
  1158. keyAEData    typeObjectSpecifier    An object specifier that resolves to a set of rows to be referenced in this row selection 
  1159. keyAEKind    typeEnumeration    The kind of table
  1160. keyAEName    typeChar    The name of this row selection
  1161. keyAEProtection    typeEnumeration    The table’s protection value
  1162. Note that the Apple Event Manager can coerce any Apple event record into any other descriptor type. A special coercion handler is 
  1163. not required.
  1164. Data Size    Variable
  1165. typeSession—a session object
  1166. A typeSession descriptor record contains the data necessary to create a cSession object. Note that information about existing sessions cannot be obtained.
  1167. Description    To create a typeSession descriptor record, you coerce an Apple event record containing the following fields into the equivalent typeSession descriptor record.
  1168. Keyword    Descriptor type    Description
  1169. keyAEAccount    typeChar    An optional account name or number for login verification
  1170. keyAEGuest    typeBoolean    Whether or not to validate the session at the default guest level
  1171. keyAEPassword    typeChar    The session password
  1172. keyAEUser    typeChar    The user name to access this object’s container
  1173. Note that the Apple Event Manager can coerce any Apple event record into any other descriptor type. A special coercion handler is not required.
  1174. Data Size    Variable
  1175. Notes    The keyAEGuest field is used to determine if the user, account, and password fields are required. If keyAEGuest is TRUE, then they are not used and do not need to be included or referenced. The session should be validated at whatever the default guest access level is. If keyAEGuest is false, then the fields keyAEUser and keyAEPassword (and optionally keyAEAccount) should be used for session verification.
  1176.     The keyAEAccount field is an optional field typically used for logging onto mainframes. It can be omitted if it is not needed.
  1177.     The keyAEPassword field is a password that is used to verify the session. If the password does not match the password on the server for that particular user, then the session creation should fail. 
  1178. typeTable—a table object
  1179. A typeTable descriptor record contains data to create or retrieve a cTable object.
  1180. Description    To create a typeTable descriptor record, you coerce an Apple event record containing the following fields into the equivalent typeTable descriptor record.
  1181. Keyword    Descriptor type    Description
  1182. keyAEAccess    typeEnumeration    The access privileges
  1183. keyAEColumns    typeAEList    A list of typeColumn descriptors 
  1184. keyAEData    typeAEList    The data in the table as a list of rows, with each row as a list of typeCell descriptors
  1185. keyAEKind    typeEnumeration    The kind of table
  1186. keyAEName    typeChar    The name of this table 
  1187. keyAEProtection    typeEnumeration    The table’s protection value
  1188. keyAERowList    typeAEList    A list of typeRow descriptors 
  1189. Note that the Apple Event Manager can coerce any Apple event record into any other descriptor type. A special coercion handler is 
  1190. not required.
  1191. Data Size    Variable
  1192. Notes    The keyAERowList and keyAEColumns descriptors should not include the keyAEData keyword. The keyAEData keyword should only appear in the typeTable descriptor, and the data should be a list of lists. Each element in the list is a row, and that row is a list 
  1193. of typeCell descriptors containing only the unique information for that cell.
  1194. Key forms defined in the Database suite
  1195. Table 4 lists the key forms defined in the Database suite. The italicized words in each example correspond to the key (the portion of the object specifier record that distinguishes an object from other objects of the same class in the same container). For more information about keys and key forms, see the Apple Event Manager chapter of Inside Macintosh: Interapplication Communication.
  1196. n    Table 4    Key forms defined in the Database suite
  1197. Key form constant    Description
  1198. formAbsolutePosition    Specifies the position of an element in relation to the beginning or end of its container (for example, “word 5 of . . . ”), or specifies one or more elements with a constant defined in the Apple Event Manager chapter of Inside Macintosh: Interapplication Communication, such as kAEFirst (for example, “the first word in paragraph 12 . . . ”) or kAEAll (for example, “all the words in paragraph 12 . . . ”)
  1199. formName    Specifies an element by its name (for example, “the document named ‘MyDoc’ ”)
  1200. formPropertyID    Specifies a property of an object by its four-character property ID (for example, “the font of word 1”)
  1201. formRange    Specifies a list of elements between two other elements (for example, “the words between ‘Wild’ and ‘Zanzibar,’ inclusive”)
  1202. formRelativePosition    Specifies an element immediately before or after a container (for example, “the next word after the word whose style is bold”)
  1203. formTest    Specifies one or more elements that pass a test; values of one or more properties or elements are tested (for example, “the first paragraph that is centered and that begins with the word ‘Wild’ ”)
  1204. Comparison operators defined in the Database suite
  1205. Table 5 lists the comparison operators defined in the Database suite.
  1206. n    Table 5    Comparison operators defined in the Database suite
  1207. Comparison operator 
  1208. constant    Operator    Description
  1209. kAEBeginsWith    'bgwt'    The value of the first operand begins with the value of the second operand (for example, the string “operand” begins with the string “opera”)
  1210. kAEContains    'cont'    The value of the first operand contains the value of the second operand (for example, the string “operand” contains the string “era”)
  1211. kAEEndsWith    'ends'    The value of the first operand ends with the value of the second operand (for example, the string “operand” ends with the string “and”)
  1212. kAEEquals    '=   '    The value of the first operand is equal to the value of the second operand
  1213. kAEGreaterThan    '>   '    The value of the first operand is greater than the value of the second operand
  1214. kAEGreaterThanEquals    '>=  '    The value of the first operand is greater than or equal to the value of the second operand
  1215. kAELessThan    '<   '    The value of the first operand is less than the value of the second operand
  1216. kAELessThanEquals    '<=  '    The value of the first operand is less than or equal to the value of the second operand
  1217. Constants defined in the Database suite
  1218. Table 6 lists the constants defined in the Database suite.
  1219. n    Table 6    Constants defined in the Database suite
  1220. Constant    Value    Constant    Value
  1221. cDatabase    'cDB '    kAESort    'SORT'
  1222. cDBMS    'cDBM'    kAEVariableRepeat    'rVar'
  1223. cHost    'cHST'    kAscending    $0000
  1224. cKey    'cKEY'    kAverage    'AVRG'
  1225. cRowSelection    'crsl'    kCount    'CONT'
  1226. cSelection    'csel'    kCreateAccess    $0008
  1227. cSession    'cSES'    kCursor    'CURS'
  1228. enumAccess    'accs'    kDeleteAccess    $0010
  1229. enumGroupFunctions    'grup'    kDescending    $0001
  1230. enumLockTypes    'lock'    kExclusiveLock    'EXLK'
  1231. enumProtection    'prtn'    keyAEAccess    'pACS'
  1232. enumRepeatValues    'erpt'    keyAEAccount    'pACT'
  1233. enumSortDirection    'sort'    keyAEColumnList    'kCol'
  1234. enumTableTypes    'tblt'    keyAEColumns    'COLS'
  1235. errAEDeadLock    –10019    keyAECurrentSort    'pSRT'
  1236. errAELockRequestTimeout    –10020    keyAEDefaultType    'deft'
  1237. errAENoSuchGroupFunction     –10018    keyAEGroupColumns    'GRPC'
  1238. errAENoSuchSortType    –10017    keyAEGroupFunctions    'GRPF'
  1239. errAENotUnique    –10022    keyAEGuest    'pGST'
  1240. errAETransactionTimeout    –10021    keyAEID    'ID  '
  1241. kAEAbortTransaction    'ABRT'    keyAEKind    'pKND'
  1242. kAEDatabase    'DATA'    keyAEName    'pnam'
  1243. kAEDBSuite    'dbst'    keyAENullsOK    'pNLS'
  1244. kAEFixedRepeat    'rFxd'    keyAEPassword    'pPAS'
  1245. kAEFormulaProtect    'fpro'    keyAEPrimaryKey    'pPKy'
  1246. kAEGroup    'GRUP'    keyAERepeating    'pRPT'
  1247. kAEModifiable    'modf'    keyAERepeatSize    'pRPS'
  1248. kAENonModifiable    'nmod'    keyAERowList    'krls'
  1249. kAESingleValued    'rSgl'    keyAESession    'SESN'
  1250.     (continued)
  1251. n    Table 6    Constants defined in the Database suite (continued)
  1252. Constant    Value    Constant    Value
  1253. keyAESortElement    'SRTE'    pCurrentSort    'pSRT'
  1254. keyAESortType    'SRTT'    pFormula    'pfor'
  1255. keyAEUniqueValue    'pUNQ'    pGuest    'pGST'
  1256. keyAEUser    'pUSR'    pID    'ID  '
  1257. kLinkset    'LINK'    pKind    'pKND'
  1258. kMaximum    'MAX '    pLock    'pLCK'
  1259. kMean    'MEAN'    pNullsOk    'pNLS'
  1260. kMinimum    'MIN '    pOpenTransaction    'pTRN'
  1261. kNoAccess    $0000    pPassword    'pPAS'
  1262. kNoLock    'NOLK'    pPrimaryKey    'pPKy'
  1263. kNumeric    $0002    pRepeating    'pRPT'
  1264. kReadAccess    $0001    pRepeatSize    'pRPS'
  1265. kSharedLock    'SHLK'    pRowIDs    'pRWS'
  1266. kStdDev    'STDV'    pUniqueValue    'pUNQ'
  1267. kSum    'TOTL'    pUser    'pUSR'
  1268. kTable    'TABL'    pValue    'vlue'
  1269. kTextual    $0000    typeCell    'ccel'
  1270. kUpdateAccess    $0004    typeColumn    'ccol'
  1271. kView    'VIEW'    typeKey    'cKEY'
  1272. kWriteAccess    $0002    typeRow    'crow'
  1273. pAccess    'pACS'    typeRowSelection    'crsl'
  1274. pAccount    'pACT'    typeSession    'cSES'
  1275.    Index 
  1276.  
  1277. A
  1278. Abort Transaction  2, 4, 5, 6
  1279. Apple event constructs  2
  1280. Apple events, defined in the Database suite  4–7, 
  1281. 10, 12
  1282. B
  1283. Begin Transaction  3, 4, 5, 6, 7
  1284. Begins With comparison operator  60
  1285. C
  1286. cCell  13, 16, 23, 37, 49
  1287. cColumn  13, 21, 24, 34, 42, 50
  1288. cDatabase  13, 29, 31
  1289. cDBMS  13, 28, 31
  1290. cHost  13
  1291. cKey  13, 42, 50
  1292. Clone  24, 27, 50
  1293. cObject  16, 21, 25, 28
  1294. comparison operators, defined in the Database suite  60
  1295. constants, defined in the Database suite  61-62
  1296. Contains comparison operator  60
  1297. Core suite transaction 
  1298. model  2
  1299. Count Elements  24, 27, 29, 50
  1300. Create Element  4, 27, 50
  1301. cRow  36, 42, 50
  1302. cRowSelection  14, 40
  1303. cSession  6, 7, 14, 26, 29, 31
  1304. cSession object  2
  1305. cTable  14, 26, 38, 40
  1306. cText  16, 28
  1307. cType  16, 21, 28
  1308. D
  1309. database management system  2
  1310. Database object class  25
  1311. Database suite  1-62
  1312. Apple events defined in  4-7, 10, 12
  1313. comparison operators defined in  60
  1314. constants defined in  61-62
  1315. descriptor types defined in  51
  1316. key forms defined in  59
  1317. object classes defined in  13-18, 24, 27, 29, 32, 39, 43, 46
  1318. object inheritance hierarchy in  14
  1319. Database suite defines Apple events  2
  1320. DBMS  2, 16
  1321. Delete  24, 27, 50
  1322. descriptor types, defined in the Database suite  51
  1323. Do Objects Exist  18, 24, 27, 29, 50
  1324. E
  1325. End Transaction  5
  1326. Ends With comparison operator  60
  1327. enumAccess  21, 25
  1328. enumRepeatValues  23
  1329. Equal To comparison operator  60
  1330. errAEEventFailed  6, 8, 10, 12
  1331. errAEEventNotHandled  5
  1332. errAEInTransaction  8
  1333. errAENoSuchGroupFunction  10
  1334. errAENoSuchSortType  12
  1335. errAENoSuchTransaction  6, 8
  1336. F
  1337. formAbsolutePosition key form  59
  1338. formName key form  59
  1339. formPropertyID key form  59
  1340. formRange key form  59
  1341. formRelativePosition key form  59
  1342. formTest key form  59
  1343. G, H, I, J
  1344. Get Class Info  24, 27, 29, 50
  1345. Get Data  4, 18, 24, 27, 29, 50
  1346. Get Data Size  3, 18, 24, 27, 29, 50
  1347. Greater Than comparison operator  60
  1348. Greater Than or Equal To comparison operator  60
  1349. Group  4, 24
  1350. K, L
  1351. kAEAbortTransaction  5
  1352. kAEBeginsWith comparison operator  60
  1353. kAEBeginTransaction  7
  1354. kAEContains comparison operator  60
  1355. kAEDatabase  5, 9, 11
  1356. kAEEndsWith comparison operator  60
  1357. kAEEquals comparison operator  60
  1358. kAEFixedRepeat  24
  1359. kAEGreaterThan comparison operator  60
  1360. kAEGreaterThanEquals comparison operator  60
  1361. kAEGroup  9
  1362. kAELessThan comparison operator  60
  1363. kAELessThanEquals comparison operator  60
  1364. kAEMiscStandards  7
  1365. kAESingleValued  24
  1366. kAEVariableRepeat  24
  1367. kCreateAccess  21, 25, 36, 
  1368. 40, 48
  1369. key field  3
  1370. key forms, defined in the Database suite  59
  1371. keyAEAccess  53, 55, 56, 58
  1372. keyAEAccount  57
  1373. keyAECellList  53, 55
  1374. keyAEColumnList  54
  1375. keyAEColumns  58
  1376. keyAECurrentSort  54
  1377. keyAEData  4, 52, 56, 58
  1378. keyAEDefaultType 52
  1379. keyAEFormula  52, 53
  1380. keyAEGroupColumns  9
  1381. keyAEGroupFunctions  9, 10
  1382. keyAEGuest  57
  1383. keyAEID  55
  1384. keyAEInsertHere  9, 10
  1385. keyAEKind  56, 58
  1386. keyAEName  52, 53, 54, 55, 56, 58
  1387. keyAENullsOK  53
  1388. keyAEPassword  57
  1389. keyAEProtection  52, 53, 55, 56, 58
  1390. keyAERepeatSize  52
  1391. keyAEResult  10
  1392. keyAERowList  58
  1393. keyAESession  46
  1394. keyAESortElement  11, 12
  1395. keyAESortType  11
  1396. keyAEUniqueValue  53
  1397. keyAEUser  57
  1398. keyDirectObject  9, 11
  1399. keyErrorNumber  10
  1400. kWriteAccess  21, 25, 36, 
  1401. 40, 48
  1402. M
  1403. Move  24, 50
  1404. N
  1405. NULL  29
  1406. O
  1407. object classes, defined in the Database suite  13-24, 27, 29, 32, 39, 43, 46
  1408. object inheritance hierarchy  15
  1409. for Database suite  14
  1410. object specifiers, key forms for  59
  1411. P, Q, R
  1412. pAccess  21, 25, 36, 40, 48
  1413. pAccount  44
  1414. pBestType  16, 21, 25, 28, 30, 33, 36, 40, 44, 48
  1415. pClass  16, 21, 25, 28, 30, 33, 36, 40, 44, 48
  1416. pCurrentSort  33
  1417. pDefaultType  16, 21, 25, 28, 30, 36, 40, 44, 48
  1418. pFormula  16, 22
  1419. pGuest  45
  1420. pID  37, 45
  1421. pKind  41, 49
  1422. pLock  17, 22, 26, 37, 41, 49
  1423. pName  17, 22, 26, 28, 30, 34, 37, 41, 49
  1424. pNullsOk  22
  1425. pOpenTransaction  45
  1426. pPassword  45
  1427. pPrimaryKey  34
  1428. pProtection  17, 22, 37, 41, 49
  1429. pRepeating  23
  1430. pRepeatSize  17, 23
  1431. pRowIDs  41
  1432. pUniqueValue  23, 34
  1433. pUser  45
  1434. pValue  17
  1435. S
  1436. Set Data  4, 18, 24, 27, 29, 50
  1437. Sort  4, 50
  1438. T, U, V, W, X, Y, Z
  1439. the End Transaction  6
  1440. transaction ID  5, 7
  1441. Transaction Terminated  5, 6
  1442. typeAEDescList  25, 28, 30
  1443. typeAEList  52, 53, 54, 55, 58
  1444. typeBoolean  53, 57
  1445. typeCell  16, 51, 52
  1446. typeChar  52, 53, 54, 55, 56, 57, 58
  1447. typeColumn  21, 51
  1448. typeEnumeration  9, 52, 53, 55, 56, 58
  1449. typeInsertionLoc  9
  1450. typeIntlText  8
  1451. typeKey  33, 51
  1452. typeLongInteger  52
  1453. typeObjectSpecifier  7, 9, 46, 56
  1454. typeRow  51, 55
  1455. typeRowSelection  40, 51, 56
  1456. typeSession  51
  1457. typeShortInteger  54
  1458. typeTable  48, 51, 58
  1459. typeType  52
  1460. The Apple Publishing System 
  1461.  
  1462. This Apple manual was written, edited, 
  1463. and composed on a desktop publishing 
  1464. system using Apple Macintosh computers 
  1465. and Microsoft Word software. Proof pages were created on an Apple LaserWriter IINTX printer. Final pages were created on the Varityper VT600 imagesetter. PostScript®, the page-description language for the LaserWriter, was developed by Adobe Systems Incorporated. 
  1466. Text type and display type are Palatino®. Bullets are ITC Zapf Dingbats®. Some elements, such as program listings, are set 
  1467. in Apple Courier.  
  1468. Writer: Amr Eissa
  1469. Illustrator: Janet Anders
  1470. ê◊#ˇ ˇˇˇˇ#◊ 
  1471. d, Palatino
  1472. .°dONLNd6ñO©+¥g°dONLNdTñmÑ*Apple Event Registry:°dONLNdmñÜ=*Database Suite
  1473. °dONLNd]Yñi¢(Ñ¥
  1474. °dONLNd`jñwP* Developer Technical Publications
  1475. °dONLNdÅzñÖü*©
  1476. °dONLNdÇxüÖ5)     Apple Computer, Inc. 1992ˇÿ◊#ˇ ˇˇˇˇ#◊ 
  1477. d, Palatino
  1478. .°dONLNd.:"+8V°dONLNd.):1)A
  1479.     °dONLNd/1:G)PPLE
  1480. °dONLNd.G:P) C
  1481.     °dONLNd    /P:)    OMPUTER
  1482. °dONLNd.Ä:â)0, I
  1483.     °dONLNd/â:ó)    NC
  1484. °dONLNd.ó:ö).°dONLNd>*JÆ(fH© 1992, Apple Computer, Inc.°dONLNd7I*UÑ* All rights reserved.°dONLNd;@–L÷(hÓL
  1485.     °dONLNd<A÷L¸)IMITED
  1486. °dONLNdB@˝L
  1487. )' W
  1488.     °dONLNdDA
  1489. LM)
  1490. ARRANTY ON
  1491. °dONLNdOK–WŸ(sÓM
  1492.     °dONLNdPLŸW
  1493. )    EDIA AND
  1494. °dONLNdXK
  1495. W)4 R
  1496.     °dONLNdZLWZ)    
  1497. EPLACEMENT
  1498. °dONLNd    p]viÁ+`THE WARRANTY AND°dONLNd    Åhvt‰* REMEDIES SET FORTH°dONLNd    îsv    * ABOVE ARE EXCLUSIVE AND°dONLNd    ¨~väÚ* IN LIEU OF ALL OTHERS,°dONLNd    √âvï* ORAL OR WRITTEN, EXPRESS°dONLNd    ‹îv†∑* OR IMPLIED. °dONLNd    Ëî∑†)ANo Apple dealer,°dONLNd    ˘üv´
  1499. («î agent, or employee is authorized°dONLNd
  1500. ™v∂Ì* to make any modification,°dONLNd
  1501. 4µv¡¯* extension, or addition to this°dONLNd
  1502. S¿vç*     warranty.°dONLNdLY*e∫(ÅHNo part of this publication may°dONLNdld*pú* be reproduced, stored in a°dONLNdáo*{æ* !retrieval system, or transmitted,°dONLNd©z*Ü©* in any form or by any means,°dONLNdΔÖ*ëì* mechanical, electronic,°dONLNdfiê*ú•* photocopying, recording, or°dONLNd˙õ*ßø*  otherwise, without prior written°dONLNd¶*≤∂* permission of Apple Computer,°dONLNd9±*Ωº* !Inc. Printed in the United States°dONLNd[º*»_* of America.°dONLNde]–i_(ÖÓ If you discover physical defects°dONLNdÜh–tb*  in the manual or in the media on°dONLNdßs–N* which a software product is°dONLNd√~–ä`* distributed, APDA will replace°dONLNd‚â–ïF* the media or manual at no°dONLNd¸î–†J* charge to you provided you°dONLNdü–´U* return the item to be replaced°dONLNd6™–∂B* with proof of purchase to°dONLNdPµ–¡Ò* APDA.°dONLNdV«–”[*ALL IMPLIED WARRANTIES°dONLNdm“–fi1* ON THIS MANUAL,°dONLNd}›–È;* INCLUDING IMPLIED°dONLNdèË–Ù(*
  1503. WARRANTIES OF°dONLNdùÛ–ˇR* MERCHANTABILITY AND°dONLNd±˛–
  1504. a* FITNESS FOR A PARTICULAR°dONLNd     –U* PURPOSE, ARE LIMITED IN°dONLNd‚– Y* DURATION TO NINETY (90)°dONLNd˙–+R* DAYS FROM THE DATE OF°dONLNd*–6C* THE ORIGINAL RETAIL°dONLNd$5–A4* PURCHASE OF THIS°dONLNd5@–L* PRODUCT.°dONLNdgŒ*⁄≤(ˆHThe Apple logo is a registered°dONLNdÜŸ*Â∂* trademark of Apple Computer,°dONLNd£‰*¿*  Inc. Use of the “keyboard” Apple°dONLNdƒÔ*˚ü* logo (Option-Shift-K) for°dONLNdfi˙*¿* commercial purposes without the°dONLNd˛*±* prior written consent of Apple°dONLNd*ü* may constitute trademark°dONLNd6*'ï* infringement and unfair°dONLNdN&*2£* competition in violation of°dONLNdj1*=ì* federal and state laws.°dONLNd
  1505. _“vfi˜(˙îSome states do not allow the°dONLNd
  1506. |›vÈÁ* exclusion or limitation of°dONLNd
  1507. óËvÙ* implied warranties or liability°dONLNd
  1508. ∑Ûvˇ˛* for incidental or consequential°dONLNd
  1509. ◊˛v
  1510. €* damages, so the above°dONLNd
  1511. Ì    v* limitation or exclusion may not°dONLNd
  1512. v ˆ* apply to you. This warranty°dONLNd )v+*  gives you specific legal rights,°dONLNd J*v6˘* and you may also have other°dONLNd f5vA* rights which vary from state to°dONLNd Ü@vLê* state.°dONLNdÑC*Oä(kHApple Computer, Inc.°dONLNdôN*Zè* 20525 Mariani Avenue°dONLNdØY*e†* Cupertino, CA  95014-6299°dONLNd…d*pd* 408-996-1010°dONLNd@R–^;(zÓEven though Apple has°dONLNdV]–i9* reviewed this manual, °dONLNdl]9iY)iAPPLE°dONLNdrh–tZ(êÓMAKES NO WARRANTY OR°dONLNdás–Y* REPRESENTATION, EITHER°dONLNdû~–ä]* EXPRESS OR IMPLIED, WITH°dONLNd∑â–ï\* RESPECT TO THIS MANUAL,°dONLNdœî–†T* ITS QUALITY, ACCURACY,°dONLNdÊü–´K* MERCHANTABILITY, OR°dONLNd˙™–∂a* FITNESS FOR A PARTICULAR°dONLNdµ–¡c* PURPOSE. AS A RESULT, THIS°dONLNd.¿–ÃS* MANUAL IS SOLD “AS IS,”°dONLNdFÀ–◊a* AND YOU, THE PURCHASER,°dONLNd^÷–‚_* ARE ASSUMING THE ENTIRE°dONLNdv·–ÌL* RISK AS TO ITS QUALITY°dONLNdçÏ–¯)*
  1513. AND ACCURACY.°dONLNd÷v*Ç∂(ûHApple, the Apple logo, APDA,°dONLNdÛÅ*çº* LaserWriter, and Macintosh are°dONLNdå*ò∫* trademarks of Apple Computer,°dONLNd0ó*£¨* Inc., registered in the United°dONLNdO¢*Æ¢* States and other countries.°dONLNdk¥*¿Ω* Adobe Illustrator and PostScript°dONLNdåø*À¡* are trademarks of Adobe Systems°dONLNd¨ *÷©* Incorporated, which may be°dONLNd«’*·¡* $registered in certain jurisdictions.°dONLNdÌÂ*Ò¡*!ITC Zapf Dingbats is a registered°dONLNd*¸•* trademark of International°dONLNd*˚*ê* Typeface Corporation.°dONLNdù˛–
  1514. c+¶IN NO EVENT WILL APPLE BE°dONLNd∑    –7* LIABLE FOR DIRECT,°dONLNd – 6* INDIRECT, SPECIAL,°dONLNd›–+'* INCIDENTAL, OR°dONLNdÏ*–6a* CONSEQUENTIAL DAMAGES°dONLNd    5–AE* RESULTING FROM ANY°dONLNd    @–La* DEFECT OR INACCURACY IN°dONLNd    -K–W *
  1515. THIS MANUAL, °dONLNd    :K W?)Peven if°dONLNd    BV–bQ(~Óadvised of the possibility of°dONLNd    `a–m*
  1516. such damages.°dONLNd@
  1517. *ó(5HMicrosoft is a registered°dONLNdZ*$ì* trademark of Microsoft°dONLNdq#*/d* Corporation.°dONLNd~3*?î*Palatino is a registered°dONLNdó>*J√* trademark of Linotype AG and/or°dONLNd∑I*Ur* its subsidiaries.°dONLNd…[*gõ*Varityper is a registered°dONLNd„f*r¨* trademark of Varityper, Inc.°dONLNdx*Ñæ*Simultaneously published in the°dONLNd É*è•* United States and Canada.ˇ
  1518. B◊#ˇ ˇˇˇˇ#◊ 
  1519. d, Palatino
  1520. .°dONLNdfúzÔ+∫îContents
  1521. °dONLNd    òú§L*,(Introduction to the Database suite  /  2°dONLNd2•¨±S+
  1522. $Overview of the Database suite  /  2°dONLNdW≤¨æ≤*
  1523. 9Applications that should support the Database suite  /  3°dONLNdëø¨À•*
  1524. 8Typical client applications for the Database suite  /  3°dONLNd Ã¨ÿ≤*
  1525. :Relationship of the Database suite with other suites  /  3°dONLNdŸ¨Âß*
  1526. :Using object specifiers in place of other parameters  /  4°dONLNd@ÁúÛv(∫0Apple events defined in the Database suite  /  4°dONLNdqıú~*2Abort Transaction—cancel a series of changes  /  5°dONLNd§ú¥*;Begin Transaction—begin a transaction thread and optionally°dONLNd‡∏o+
  1527. +associate it with an existing session  /  7°dONLNd ú**(F∫Group—summarize a table  /  9°dONLNd*,ú8ò*:Sort—order an object by one or more of its elements  /  11°dONLNde:úF|*3Object classes defined in the Database suite  /  13°dONLNdôHúT+* cCell—a cell from a table  /  16°dONLNd∫Vúbi*-cColumn—a column of cells from a table  /  21°dONLNdËdúp#*cDatabase—a database  /  25°dONLNdrú~q*)cDBMS—a database management system  /  28°dONLNd.ÄúåÆ*9cHost—a network host containing a DBMS or database  /  30°dONLNdhéúö**cKey—an indexed column  /  33°dONLNdÜúú®M*'cRow—a row of cells from a table  /  36°dONLNdÆ™ú∂r*.cRowSelection—a saved selection of rows  /  40°dONLNd›∏úƒù*8cSession—an active session connected to a host, DBMS, or°dONLNd≈∏—˝+
  1528. database  /  44°dONLNd&”úfl¡(˚∫AcTable—a table of rows, columns, and cells from a database  /  48°dONLNdh·úÌä*5Descriptor types defined in the Database suite  /  51°dONLNdûÔú˚*typeCell—a cell object  /  52°dONLNdº˝ú    :*!typeColumn—a column object  /  53°dONLNdfi ú:*"typeKey—a key fields object  /  54°dONLNdú%*typeRow—a row object  /  55°dONLNd'ú3r*.typeRowSelection—a row selection object  /  56°dONLNdL5úA9*#typeSession—a session object  /  57°dONLNdpCúO+*typeTable—a table object  /  58°dONLNdêQú]m*.Key forms defined in the Database suite  /  59°dONLNdø_úk¢*9Comparison operators defined in the Database suite  /  60°dONLNd˘múyk*.Constants defined in the Database suite  /  61(Ò
  1529. iiiˇ◊#ˇ ˇˇˇˇ#◊ 
  1530. d, Palatino
  1531. .°dONLNdfÑz.+¢îFigures and tables
  1532. °dONLNd§Ñ∞®*8Figure 1°dONLNd§¿∞ì)<-Object inheritance hierarchy for the Database°dONLNdJ≤¿æÒ* suite  /  15°dONLNdWŒÑ⁄•(ˆ¢Table 1°dONLNd_Œ¿⁄ö)<0Apple events defined in the Database suite  /  4°dONLNdê‹ÑË•(¢Table 2°dONLNdò‹¿Ë§)<2Apple event object classes defined in the Database°dONLNdÀÍ¿ˆÒ* suite  /  13°dONLNdÿ¯Ñ•( ¢Table 3°dONLNd‡¯¿Æ)<5Descriptor types defined in the Database suite  /  51°dONLNdÑ•(.¢Table 4°dONLNd¿ë)<.Key forms defined in the Database suite  /  59°dONLNdMÑ •(<¢Table 5°dONLNdU¿ ì)<,Comparison operators defined in the Database°dONLNdÇ"¿.Ò* suite  /  60°dONLNdè0Ñ<•(X¢Table 6°dONLNdó0¿<è)<.Constants defined in the Database suite  /  61(ÒNivˇ◊#ˇ ˇˇˇˇ#◊ 
  1533. d, Palatino
  1534. .°dONLNdfúzQ+∫îThe Database Suite
  1535. °dONLNd¨ú∏À*@CThe Database suite defines Apple event constructs that are used for°dONLNdW∫úΔ—*Acommunicating with database programs and transferring data to and°dONLNdô»ú‘”*Dfrom a database. This suite should be supported by applications that°dONLNdfi÷ú‚y*.work cooperatively with database applications.(‰1ˇ ◊#ˇ ˇˇˇˇ#◊ 
  1536. d, Palatino
  1537. .°dONLNdJ0[K+Nv"Introduction to the Database suite `L`ˇ
  1538. °dONLNd#k0w≠*The Database suite defines °dONLNd>k≠w)}Apple event constructs °dONLNdUkwç)gthat allow applications to°dONLNdpy0Öá(°NJcommunicate with database programs. By using the constructs defined in the°dONLNdªá0ì•*QDatabase suite, an application should be able to access a database and manipulate°dONLNd
  1539. ï0°W*    its data.°dONLNd´0∑}*LThe Database suite is an extension of the events and objects defined in the °dONLNdc´}∑ö(”õApple°dONLNdiπ0≈s(·NEvent Registry°dONLNdwπs≈ñ)CA: Standard Suites. In order to use the Database suite Apple event°dONLNdπ«0”°(ÔNVconstructs, an understanding of the events and objects of the Core suite, Table suite,°dONLNd’0·Æ*Sand Miscellaneous Standards is required. Anyone attempting to understand or use the°dONLNdd„0Ô˝*,Database suite must read and understand the °dONLNdê„˝Ô_)ÕApple Event Registry°dONLNd§„_Ô∞)b: Standard Suites.°dONLNd∑Ò0˝û(NNAn understanding of the Apple Event Manager is also encouraged. (See the Apple°dONLNdˇ0 ¨*Event Manager chapter of “°dONLNd ˇ¨ ï)|0Inside Macintosh: InterApplication Communication°dONLNdPˇï ©)È“ for°dONLNdV
  1540. 0Ö(5Nmore information.)
  1541. °dONLNdi90HÈ*.Overview of the Database suite VLVˇ
  1542. °dONLNdàV0bD*The °dONLNdåVDbÈ)#Database suite defines Apple events°dONLNdØVÈb¯)• for,
  1543.  
  1544. Zapf Dingbats
  1545. °dONLNd¥k0r6(êNn
  1546. °dONLNd∂h>tÉ)Gperforming more complex transactions than required by the Core suite. A°dONLNd˛v>Çq* transaction°dONLNd    vqÇØ)3H is a series of Apple events that must be processed without interruption°dONLNdRÑ>ê≈(¨\from other Apple events. The °dONLNdoÑ≈êE)áCore suite transaction model°dONLNdãÑEêã)Ä allows a single°dONLNdúí>ûä(∫\Ltransaction; any subsequent transactions cannot be started until the initial°dONLNdȆ>¨¢*Ltransaction has been completed. On the other hand, databases typically allow°dONLNd6Æ>∫|*Hmultiple transactions that can consist of a variety of operations. These°dONLNdº>»P*=transactions can be canceled without completion by using the °dONLNdººP»°(‰nAbort Transaction°dONLNdŒ >÷≠(Ú\Vevent, causing the database to return to the state it was in prior to the start of the°dONLNd%ÿ>‰_*Btransaction. Transactions can also be verified through the use of °dONLNdgÿ_‰ü(}cSession object°dONLNdvÿü‰¢)@.
  1547. °dONLNdxÌ0Ù6(Nn
  1548. °dONLNdzÍ>ˆ®)Rsorting or accessing tables within a database. Data in a database is stored in the°dONLNdÕ¯>ã*form of tables. A °dONLNdfl¯ã£)Mtable°dONLNd‰¯£´): is a named row of column headings, with zero or more rows°dONLNd>É(.\Jof data values inserted under those headings. A single record is called a °dONLNdiÉî(.°row°dONLNdlîØ) and a°dONLNds> ü(<\Stable consists of a set of rows. The intersection of a row and a column is called a°dONLNd«">.    */cell. The data contained in a cell is known as °dONLNdˆ"    .@)À atomic data°dONLNd"@.™)7 which can have either°dONLNd0><É(X\La single value or a list of values (in the case of multi-valued data cells).
  1549. °dONLNdeE0L6(jNn
  1550. °dONLNdgB>N˙)(producing grouped summaries from tables.°dONLNdêX0d (ÄN2The Database suite also defines object classes for
  1551. °dONLNd√m0t6*n
  1552. °dONLNd≈j>v,)5accessing rows, columns, and cells within a database.
  1553. °dONLNd˚0Ü6(§Nn
  1554. °dONLNd˝|>àq) accessing a °dONLNd        |qà˜)3database management system°dONLNd    #|˜à˝)Ü (°dONLNd    %|˝à)DBMS°dONLNd    )|àó)). A DBMS is a collection of°dONLNd    Fä>ñZ(≤\>programs that enables users to create and maintain a database.(‰N2)$Apple Event Registryˇ
  1555. >◊#ˇ ˇˇˇˇ#◊ 
  1556. d,
  1557.  
  1558. Zapf Dingbats
  1559. .°dONLNdFHMN+fkn, Palatino
  1560. °dONLNdCVO\)8accessing the database host (a computer running a DBMS).
  1561. °dONLNd;XH_N(}fn
  1562. °dONLNd=UVaf)<managing the sessions object on a host, DBMS, or a database.
  1563. °dONLNdzjHqN(èfn
  1564. °dONLNd|gVsÔ)#accessing selections in a database.
  1565. °dONLNd†|HÉN(°fn
  1566. °dONLNd¢yVÖ)(accessing key fields in a database. The °dONLNd yÖ1)±    key field°dONLNd”y1Ö∫)*  in a database is a column (or a°dONLNdÙáVìæ(ØtQcombination of a number of columns) that can be used to uniquely identify rows in°dONLNdFïV°É*
  1567. the table.
  1568. °dONLNdQ«H÷u(Òf3Applications that should support the Database suite ‰d‰
  1569. °dONLNdÖ‰Hä*FThe following types of applications should support the Database suite:
  1570. °dONLNdÃ˘HˇM*n
  1571. °dONLNdŒˆV\+7Applications that manipulate databases or spreadsheets.
  1572. °dONLNd HM(/fn
  1573. °dONLNd    Vv+=Applications that communicate with local or remote databases.
  1574. °dONLNdHH#M(Afn
  1575. °dONLNdJV&$+,Applications that remotely access databases.
  1576. °dONLNdxLH[c(vf2Typical client applications for the Database suite idi
  1577. °dONLNd´iHuØ*QThe following types of applications are likely to be clients of applications that°dONLNd˝wHÉ≈*support the Database suite:
  1578. °dONLNdåHíM*n
  1579. °dONLNdâVï°+GApplications that utilize shared data, for example, addresses and phone°dONLNdcóV£}*numbers.
  1580. °dONLNdl¨H≤M(–fn
  1581. °dONLNdn©Vµ√+NApplications that use information in a networked database, such as CAD, Forms,°dONLNdΩ∑V√Û*$Inventory Control, or Point of Sale.
  1582. °dONLNd„ÃH“M(fn
  1583. °dONLNdÂ…V’C+2Applications that interact with database programs.
  1584. °dONLNd˚H
  1585. u(%f4Relationship of the Database suite with other suites d
  1586. °dONLNdNH(Ω*TThe Database suite’s Apple event constructs allow applications to refer to, request,°dONLNd£*H6¡*Qand modify a remote database application’s data when used in conjunction with the°dONLNdı8HD€*"objects and events defined in the °dONLNd8€D=)ìApple Event Registry°dONLNd+8=Dé)b: Standard Suites.°dONLNd>NHZº(vfPThe Database suite defines three new Apple events: Abort Transaction, Group, and°dONLNdè\Hh≤*Sort, in addition to the °dONLNd®\≤h)jBegin Transaction°dONLNdπ\h∫)Q) event which is an extension of the Begin°dONLNd„jHvƒ(ífSTransaction event of the Miscellaneous Standards. To support the Database suite, an°dONLNd7xHÑ≥*Qapplication must also support a small subset of Apple events from the Core suite,°dONLNdâÜHíÀ*particularly Do Objects Exist°dONLNd¶ÜÀíˇ)É , Get Data, °dONLNd≤ܡíB)4Get Data Size,°dONLNd¿ÜBíø)C and Set Data. A few Apple+86The Database Suite)y3ˇ◊#ˇ ˇˇˇˇ#◊ 
  1587. d, Palatino
  1588. .°dONLNdC0O™+NkSevents from the Miscellaneous Standards are also used by the Database suite. All of°dONLNdTQ0]õ*Othe common functions of a database operation can be accomplished using only the°dONLNd§_0k∞*Apple events defined in the °dONLNd¿_∞k)ÄApple Event Registry°dONLNd‘_kc)b: Standard Suites.°dONLNdÁu0Åñ(ùNRFor example, the Create Element event is used to create an object in this suite. A°dONLNd:É0èR*Bdescriptor record containing initialization data is passed as the °dONLNd|ÉRèâ(´p    keyAEData°dONLNdÜë0ù(πNparameter to the °dONLNdóëù≈)OCreate Element°dONLNd•ë≈ùz)F) event. This descriptor contains optional°dONLNdœü0´°(«NUinformation necessary to create the object. If the information is missing, the server°dONLNd%≠0π‚*)uses default values. It follows that the °dONLNdN≠‚π )≤Get Data°dONLNdV≠ π!)* and °dONLNd[≠!πJ)Set Data°dONLNdc≠Jπ£)) events are the most°dONLNdxª0«q(„NFcommonly used events of the Core suite. They provide the capability of°dONLNdø…0’Æ*Smanipulating the data defined by the database objects. By using the Get Data event,°dONLNd◊0„Ø*Uan application can interrogate another application about the value of various fields,°dONLNdiÂ0Òñ*Ncolumns, rows, or cells. The Apple Event Manager’s automatic coercion handlers°dONLNd∏Û0ˇí*Pallow the user to request data in a format acceptable to Apple event constructs.
  1589. °dONLNd
  1590. 0.X*.4Using object specifiers in place of other parameters <L<ˇ
  1591. °dONLNd?<0H†*XIn all of the suites except the Finder suite, you can substitute an object specifier for°dONLNdòJ0V£*Sany parameter of an Apple event that is not already defined as an object specifier.°dONLNdÏX0dç*QThis object specifier must specify a single object. When you substitute an object°dONLNd>f0rï*Pspecifier for a parameter, the actual value of the parameter is the value of the°dONLNdèt0Ä≠*Wdefault descriptor record for the specified object (that is, the value you get when you°dONLNdÁÇ0é™*Usend a Get Data Apple event for the object and do not specify a particular descriptor°dONLNd=ê0úâ*type for the result).
  1592. °dONLNdSÃ0›í*@*Apple events defined in the Database suite ‚L‚ˇ
  1593. °dONLNd~Ì0˘ë*MThe Apple events defined in the Database suite are described in the following°dONLNdÃ˚0Î*+sections. Table 1 lists these Apple events.,
  1594.  
  1595. Zapf Dingbats
  1596. °dONLNd¯"0)6*$n
  1597. °dONLNd˙ @,a+Table 1°dONLNd z,>):*Apple events defined in the Database suite
  1598.     °dONLNd-80CL(_NName°dONLNd28üCÔ)oRequested action TLTˇ dLdˇ
  1599. °dONLNdCN0ZÅ(vNAbort Transaction°dONLNdUN†Z)pCancel a series of changes.°dONLNdr^0jÅ(ÜNBegin Transaction°dONLNdÑ^†j_)p)Begin a transaction thread and optionally°dONLNdÆl†xD*&associate it with an existing session.°dONLNd÷|0àK(§NGroup°dONLNd‹|†à¯)pSummarize a table.°dONLNdå0òC(¥NSort°dONLNdıå†òj)p/Order an object by one or more of its elements.(‰N4)$Apple Event Registryˇ
  1600. ◊#ˇ ˇˇˇˇ#◊ 
  1601. d, Palatino
  1602. .°dONLNdJH[¬+fv,Abort Transaction—cancel a series of changes `d`
  1603. °dONLNd-oH{ø*!RThe Abort Transaction Apple event is used to cancel a transaction without allowing°dONLNdÄ}Hâ¿*Tit to complete. This ensures that any changes that took place during the transaction°dONLNd’ãHó∑*are not made permanent.°dONLNdÌ£HØ}* Event Class°dONLNd˘£úØ‹)T kAEDatabase°dONLNdªH«p(„fEvent ID°dONLNdªú«ˇ)TkAEAbortTransaction°dONLNd"”Hfl|(˚f
  1604. Parameters°dONLNd-”úfl¥)TNone°dONLNd2ÎH˜ú(fReply Parameters °dONLNdCÎú˜¥)TNone°dONLNdHHc(+fNotes°dONLNdNúÌ)TAbort Transaction°dONLNd_Ì=)Q complements the °dONLNdp=é)PBegin Transaction°dONLNdÅéì)Q, °dONLNdÉì§)End°dONLNdáú—(9∫ Transaction°dONLNdí—È)5, and °dONLNdòÈU)Transaction Terminated°dONLNdÆU¨)l events found in the°dONLNd√ú+Õ(G∫CMiscellaneous Standards. It extends their functions to allow commit°dONLNd-ú9‘*Hand rollback functionality. Transactions are used to connect a series of°dONLNdP;úGG*'events into one logical operation. The °dONLNdw;GGà)´transaction ID°dONLNdÖ;àGµ)A
  1605. , which is°dONLNdêIúU–(q∫Gpresent in every Apple event, is used to identify the transaction. If a°dONLNdÿWúc¡*Asession has been associated with a given transaction, every event°dONLNdeúq√*Cthat is part of that transaction will behave as if the session were°dONLNd^súΔ*Dexplicitly given. To associate a session with a transaction, include°dONLNd£Åúç©*<the session identifier as an optional parameter in the Begin°dONLNd‡èúõ≥*=Transaction event. Any transaction can either be completed by°dONLNdùú©a*+sending an End Transaction event (known as °dONLNdIùa©Ç)≈commit°dONLNdOùÇ©À)! because it saves°dONLNda´ú∑¡(”∫Ball the pending actions), or it may be aborted by sending an Abort°dONLNd§πú≈*Transaction event (known as °dONLNd¿π≈E)Å    rollback °dONLNd…πE≈Ã)(because it cancels any pending°dONLNdË«ú”Ó(Ô∫series of changes).°dONLNd˝flúÎŒ*BDatabases that do not support commit and rollback should treat the°dONLNd@Ìú˘Ì*Begin Transaction°dONLNdQÌÌ˘‘)Q3 event as a Save and the Abort Transaction event as°dONLNdÖ˚úO(#∫(a Revert. Otherwise, the server returns °dONLNd≠˚Oø)≥errAEEventNotHandled°dONLNd¡˚øÀ)p on°dONLNd≈    ú≈(1∫Dreceipt of the Abort Transaction event to indicate that it could not°dONLNd
  1606. ú#≥*:rollback the transaction. More complex database management°dONLNdE%ú1¬*Csystems are able to rollback the transaction on receipt of an Abort°dONLNdâ3ú? *CTransaction event or commit the transaction upon receipt of the End°dONLNdÕAúMÔ*Transaction event.+fi{The Database Suite)y5ˇ    "◊#ˇ ˇˇˇˇ#◊ 
  1607. d, Palatino
  1608. .°dONLNdCÑO®+¢kBIf a database does not support any type of transaction, the Begin,°dONLNdCQÑ]£*?Abort, and End Transaction events are not handled. Instead, the°dONLNdÉ_Ñk§*Cevents are processed on a first come first serve basis, which is an°dONLNd«mÑyº*Dinefficient method for even the least complex database. On the other°dONLNd {Ñá∞*Ahand, some databases support only single transaction threads that°dONLNdNâÑïj*5handle one transaction at a time. In such cases, the °dONLNdÉâjïª)ÊBegin Transaction°dONLNdïóÑ£ó(ø¢and °dONLNdôóó£Ò)the End Transaction°dONLNd¨óÒ£°)Z) events are used to lock out other events°dONLNd÷•ѱñ(Õ¢=while processing a series of events. The way these events are°dONLNd≥Ñøú*<handled by the server depends on the way the server has been°dONLNdQ¡ÑÕØ*?implemented. Either of these transaction mechanisms may be used°dONLNdëœÑ€*with or without support for °dONLNd≠œ€))~    cSession °dONLNd∂œ)€E)'object.°dONLNdæÂÑÒò(
  1609. ¢The °dONLNd¬ÂòÒÈ)Abort Transaction°dONLNd”ÂÈÒP)Q event differs from the °dONLNdÎÂPÒº)gTransaction Terminated°dONLNdÛÑˇõ(¢>event found in the Miscellaneous Standards, in that the client°dONLNdAÑ
  1610. ∏*Eapplication sends an Abort Transaction event to cancel a transaction,°dONLNdáÑÜ*:whereas in the latter case, the server sends a Transaction°dONLNd¬Ñ)@*+Terminated event if it encounters an error.°dONLNdÓ50Aj(]N Result Codes°dONLNd¸EÑQÿ+TerrAEEventFailed°dONLNd
  1611. EQ )~–10000°dONLNdE*Q◊)(#The Apple event handler failed when°dONLNd8Q*]⁄* %attempting to handle the Apple event.°dONLNd^aÑm¯(â¢errAENoSuchTransaction°dONLNduam)~-10012°dONLNd|a*m€)((The specified transaction is not a valid°dONLNd•m*yÿ* &transaction; the transaction may never°dONLNdÃy*Öª* have begun, or it may have been°dONLNdÏÖ*ë`* terminated.(‰N6)$Apple Event Registryˇ >◊#ˇ ˇˇˇˇ#◊ 
  1612. d, Palatino
  1613. .°dONLNdJH[Î+fv0Begin Transaction—begin a transaction thread and `d`°dONLNd1bHsæ*0optionally associate it with an existing session
  1614. °dONLNdbáHìI*!9The Begin Transaction Apple event is an extension of the °dONLNdõáIìö(ØgBegin Transaction°dONLNd¨áöì¿)Q     event of°dONLNd∂ïH°»(ΩfTthe Miscellaneous Standards. The Begin Transaction Apple event is used to initiate a°dONLNd £Hص*transaction and return a °dONLNd$£µØˆ)mtransaction ID°dONLNd2£ˆØ«)A1 for subsequent events in the transaction. In the°dONLNdd±HΩ°(ŸfLDatabase suite, this Apple event is extended to provide a way to associate a°dONLNd±øHÀ£*Ptransaction thread (a series of events that occur under the auspices of a single°dONLNdÕHŸ*+transaction) with an existing session. The °dONLNd-ÕŸ*)ΩcSession°dONLNd5Õ*ŸΔ)%$ object, the direct parameter to the°dONLNdZ€HÁ¨(fMBegin Transaction Apple event, is optional and may not be required even where°dONLNd®ÈHı¿*Tsessions are being used. The client application may be allowed to open a transaction°dONLNd˝˜H´*Swithout any session object. In such cases, the server uses guest privileges for the°dONLNdQHº*Rtransaction. The direct parameter is optional as some applications may not require°dONLNd§Hù*Osessions. On servers that do require sessions, this parameter is required for a°dONLNdÙ!H-¡*transaction to be initiated.°dONLNd9HE}* Event Class°dONLNd9úEÙ)TkAEMiscStandards°dONLNd.QH]p(yfEvent ID°dONLNd7Qú]ˇ)TkAEBeginTransaction°dONLNdKiHu|(ëf
  1615. Parameters°dONLNdW{ráº+*keyDirectObject°dONLNdgãúó‘+* Description:°dONLNdtã ó√)Ñ#The session with which to associate°dONLNdôó £h* this transaction°dONLNd™ßú≥Ë(œ∫Descriptor Type:°dONLNdªß ≥{)ÑtypeObjectSpecifier°dONLNdœ∑ú√(fl∫Required or Optional?°dONLNdÂ∑ √J)ÑOptional°dONLNdÓœH€ö(˜fReply Parameters°dONLNd·rÌÆ+* keyAEResult°dONLNd Òú˝‘+* Description:°dONLNdÒ ˝u)ÑThe transaction ID°dONLNd,ú
  1616. Ë()∫Descriptor Type:°dONLNd= 
  1617. j)ÑtypeLongInteger°dONLNdMú(9∫Required or Optional?°dONLNdc I)ÑRequired°dONLNdl#r/æ(KêkeyErrorNumber°dONLNd{3ú?‘+* Description:°dONLNdà3 ?†)ÑThe result code for the event°dONLNd¶CúOË(k∫Descriptor Type:°dONLNd∑C Oj)ÑtypeLongInteger°dONLNd«Sú_({∫Required or Optional?°dONLNd›S _Á)Ñ)Optional (The absence of a keyErrorNumber°dONLNd_ k¯* /parameter in the reply indicates that the event°dONLNd7k wô* was handled successfully.)+ZQThe Database Suite)y7ˇ    ◊#ˇ ˇˇˇˇ#◊ 
  1618. d, Palatino
  1619. .°dONLNdAZMû+xikeyErrorString°dONLNdQÑ]º+* Description:°dONLNdQ]”)Ñ/A character string that describes the error, if°dONLNdL]ifl* -any, that occurred when the event was handled°dONLNdzmÑy–(ï¢Descriptor Type:°dONLNdãmyB)Ñ typeIntlText°dONLNdò}ÑâÈ(•¢Required or Optional?°dONLNdÆ}â2)ÑOptional°dONLNd∑ï0°j(ΩN Result Codes°dONLNd≈•ѱÿ+TerrAEEventFailed°dONLNd÷•± )~–10000°dONLNd›•*±◊)(#The Apple event handler failed when°dONLNd±*Ω⁄* %attempting to handle the Apple event.°dONLNd'¡ÑÕ›(È¢errAEInTransaction°dONLNd:¡Õ )~–10011°dONLNdA¡*Õ«)(!Could not handle this Apple event°dONLNdcÕ*Ÿƒ* %because it is not part of the current°dONLNdâŸ*Â`* transaction.°dONLNdñÈÑı¯(¢errAENoSuchTransaction°dONLNd≠Èı )~–10012°dONLNd¥È*ı€)((The specified transaction is not a valid°dONLNd›ı*ÿ* &transaction; the transaction may never°dONLNd*
  1620. ª* have begun, or it may have been°dONLNd$
  1621. *`* terminated.°dONLNd0%01K(MNNotes°dONLNd6%Ñ1ñ)T;Some applications may wish to allow nested transactions. A °dONLNdq%ñ1≥(M¥nested°dONLNdx3Ñ?∑([¢ transaction°dONLNdÉ3∑?ô)33 is a new transaction within the context of another°dONLNd∑AÑMª(i¢Dexisting transaction. Although nested transactions are allowed, they°dONLNd¸OÑ[ö*>are not required. Nested transactions allow multiple levels of°dONLNd;]Ñiü*@commit and rollback to occur. If an application does not support°dONLNd|kÑw©*Bnested transactions it may return an errAEInTransaction error if a°dONLNdøyÑÖ™*BBegin Transaction event occurs during another transaction. Initial°dONLNdáÑì≠*ABegin Transaction events use a transaction ID of kAnyTransaction,°dONLNdDïѰë*;whereas nested Begin Transaction events use their enclosing°dONLNdÄ£ÑØœ*transaction’s ID.(‰N8)$Apple Event Registryˇ ≤◊#ˇ ˇˇˇˇ#◊ 
  1622. d, Palatino
  1623. .°dONLNdJH[$+fvGroup—summarize a table `d`
  1624. °dONLNdoH{æ*!RThe Group Apple event is used to create a table of summary rows by using data from°dONLNdk}Hâ¡*Ran existing table. These summary rows are computed based on the columns specified:°dONLNdæãHó∫*Sfor every column in the direct object, all rows are grouped by value, and a summary°dONLNdôH•Ω*Rrow is produced for each row with a distinct value. Rows with identical values are°dONLNdeßH≥¬*Tsummarized by using the function specified on the specified group columns. Functions°dONLNd∫µH¡º*Vare listed in the constants section. Either or both of the group columns and functions°dONLNd√HœÆ*Umay be a list. If there is a list of columns and a single function, then the function°dONLNdg—H›∏*Tapplies to all the columns. If there are multiple functions, then there must be only°dONLNdºflHÎ∏*Rone function for every column listed. This makes it possible to summarize multiple°dONLNdÌH˘“*columns with one Apple event.°dONLNd-H}* Event Class°dONLNd9ú‹)T kAEDatabase°dONLNdEH)p(EfEvent ID°dONLNdNú)À)TkAEGroup°dONLNdW5HA|(]f
  1625. Parameters°dONLNdcGrSº+*keyDirectObject°dONLNdsWúc‘+* Description:°dONLNdÄW c)Ñ/The columns to use in generating a new table of°dONLNd∞c o`* summary rows°dONLNdΩsúË(õ∫Descriptor Type:°dONLNdŒs {)ÑtypeObjectSpecifier°dONLNd‚Éúè(´∫Required or Optional?°dONLNd¯É èI)ÑRequired°dONLNdïr°“(ΩêkeyAEGroupColumns°dONLNd•ú±‘+* Description:°dONLNd • ±Ÿ)Ñ(The columns to summarize (may be a list)°dONLNdIµú¡Ë(›∫Descriptor Type:°dONLNdZµ ¡{)ÑtypeObjectSpecifier°dONLNdn≈ú—(Ì∫Required or Optional?°dONLNdÑ≈ —I)ÑRequired°dONLNdç◊r„÷(ˇêkeyAEGroupFunctions°dONLNd°ÁúÛ‘+* Description:°dONLNdÆÁ ÛÌ)Ñ*The functions with which to summarize (may°dONLNdŸÛ ˇ„* -be a list). The following group functions are°dONLNdˇ  ‡* &available: kAverage, kCount, kMaximum,°dONLNd.  ◊* #kMean, kMinimum, kStdDev, and kSum.°dONLNdRú'Ë(C∫Descriptor Type:°dONLNdc 'n)ÑtypeEnumeration°dONLNds+ú7(S∫Required or Optional?°dONLNdâ+ 7I)ÑRequired°dONLNdí=rI¬(eêkeyAEInsertHere°dONLNd¢MúY‘+* Description:°dONLNdØM Y≠)ÑThe destination summary table°dONLNdÕ]úiË(Ö∫Descriptor Type:°dONLNdfi] il)ÑtypeInsertionLoc°dONLNdÔmúy(ï∫Required or Optional?°dONLNdm yJ)ÑOptional+ZOThe Database Suite)y9ˇ‘◊#ˇ ˇˇˇˇ#◊ 
  1626. d, Palatino
  1627. .°dONLNdC0OÇ+NkReply Parameters°dONLNdUZañ+* keyAEResult°dONLNdeÑqº+* Description:°dONLNd*eq≠)Ñ$The summary table (if not specified)°dONLNdOuÑÅ–(ù¢Descriptor Type:°dONLNd`uÅc)ÑtypeObjectSpecifier°dONLNdtÖÑëÈ(≠¢Required or Optional?°dONLNdäÖë2)ÑOptional°dONLNdìóZ£¶(øxkeyErrorNumber°dONLNd¢ßÑ≥º+* Description:°dONLNdØß≥à)ÑThe result code for the event°dONLNdÕ∑Ñ√–(fl¢Descriptor Type:°dONLNdfi∑√R)ÑtypeLongInteger°dONLNdÓ«Ñ”È(Ô¢Required or Optional?°dONLNd«”œ)Ñ)Optional (The absence of a keyErrorNumber°dONLNd.”fl‡* /parameter in the reply indicates that the event°dONLNd^flÎÅ* was handled successfully.)°dONLNdy˜0K(NNotes°dONLNd˜Ñ∏)TDThe destination table is optional and should be created and returned°dONLNdƒÑ7*+as the direct object if not specified. The °dONLNdÔ7á)≥keyAEInsertHere°dONLNd˛á±)P
  1628.  specifies°dONLNd    Ñ+(;¢$where to put the newly created rows.°dONLNd/+Ñ7Æ*DSince the functions are specified by a four character code, both the°dONLNdt9ÑEî*<client application and the server must have a list of common°dONLNd±GÑS≥*Hfunctions to specify. There is no provision for textual functions or for°dONLNd˙UÑa¢*Acode resources since this is intended to be platform independent.°dONLNd<cÑoä*:Instead, the table of common functions should be extended.°dONLNdw{0áj(£N Result Codes°dONLNdÖãÅó’+QerrAEEventFailed°dONLNdñãó()Å
  1629.     –10000°dONLNd¢ã5ó‰)3$The Apple event handler failed when °dONLNd«ó5£Â* %attempting to handle the Apple event.°dONLNdÌßÅ≥(œüerrAENoSuchGroupFunction°dONLNdß≥')Ä
  1630.     –10018°dONLNdß5≥I)4The °dONLNdßI≥Ø)keyAEGroupFunctions °dONLNd)≥5ø≈(€Sparameter is not a known value.(‰N10)$Apple Event Registryˇ
  1631. ◊#ˇ ˇˇˇˇ#◊ 
  1632. d, Palatino
  1633. .°dONLNdJL[è+jv&Sort—order an object by one or more of `h`Ω°dONLNd'bLsØ* its elements
  1634. °dONLNd4áHìo(ØfThe Sort°dONLNd<áoìÆ)'K Apple event is used to order an object by one or more of its elements. For°dONLNdàïH°«(ΩfWexample, a client application may wish to sort a table based on one of its columns or a°dONLNd‡£HØ√*Uselection of rows based on a cell or column. The sort type indicates the way by which°dONLNd6±HΩ¡*Uto sort, such as ascending or descending order. The element by which to sort may be a°dONLNdåøHÀø*Zlist of items; in this case, the first element of the list is the most significant item on°dONLNdÁÕHŸ™*Pwhich to sort, and each subsequent item is a less significant item. Applications°dONLNd8€HÁ°*Mwhich do not support multiple item sorts can either perform multiple sorts in°dONLNdÜÈHıí*Mresponse to this event or simply ignore all but the first sort element in the°dONLNd‘˜H¥*keyAESortElement list.°dONLNdÎH}* Event Class°dONLNd˜ú‹)T kAEDatabase°dONLNd'H3p(OfEvent ID°dONLNd 'ú3√)TkAESort°dONLNd?HK|(gf
  1635. Parameters°dONLNd Qr]º+*keyDirectObject°dONLNd0aúm‘+* Description:°dONLNd=a mÛ)Ñ1The object to sort. (The value must be one of the°dONLNdom yÈ* .following: cTable, cRowSelection, or a list of°dONLNdûy ÖC* cRows.)°dONLNd¶âúïË(±∫Descriptor Type:°dONLNd∑â ï{)ÑtypeObjectSpecifier°dONLNdÀôú•(¡∫Required or Optional?°dONLNd·ô •I)ÑRequired°dONLNdÍ´r∑…(”êkeyAESortElement°dONLNd˚ªú«‘+* Description:°dONLNdª «Ê)Ñ,The columns by which to sort (may be a list)°dONLNd5Àú◊Ë(Û∫Descriptor Type:°dONLNdFÀ ◊{)ÑtypeObjectSpecifier°dONLNdZ€úÁ(∫Required or Optional?°dONLNdp€ ÁI)ÑRequired°dONLNdyÌr˘ª(ê
  1636. keyAESortType°dONLNdá˝ú    ‘+* Description:°dONLNdî˝     é)ÑSort type (may be a list)°dONLNdÆ
  1637. úË(5∫Descriptor Type:°dONLNdø
  1638.  o)ÑtypeShortInteger°dONLNd–ú)(E∫Required or Optional?°dONLNdÊ )J)ÑOptional°dONLNdÔ5HAú(]fReply Parameters °dONLNd5úA¥)TNone+fiáThe Database Suite)t11ˇb◊#ˇ ˇˇˇˇ#◊ 
  1639. d, Palatino
  1640. .°dONLNdC0OK+NkNotes°dONLNdCÑOé)TIf °dONLNd    CéOÂ)
  1641. keyAESortElement°dONLNdCÂOü)W* is an optional parameter, then the client°dONLNdDQÑ]±(y¢Eapplication can instruct server applications to unsort a sorted table°dONLNdä_ÑkN*-by omitting or sending a null parameter. The °dONLNd∑_Nkó) 
  1642. keyAESortType°dONLNd≈mÑyπ(ï¢Cparameter would be ignored in this case. If the keyAESortElement is°dONLNd    {Ñáï*=a list, and the keyAESortType is a scalar, then the sort type°dONLNdGâÑïj*7specified is used for all fields that are to be sorted.°dONLNdİÑ≠º*GIf there is a list of sort types specified as keyAESortType, then there°dONLNd»ØÑª=*)must be a matching list in the parameter °dONLNdÒØ=ªî)πkeyAESortElement°dONLNdØîªß)W and°dONLNdΩÑ…¥(¢Deach sort element must be sorted by the corresponding sort type. The°dONLNdKÀÑ◊Z*1default sort should be an ascending textual sort.°dONLNd}„0Ôj( N Result Codes°dONLNdãÛÑˇÿ+TerrAEEventFailed°dONLNdúÛˇ )~–10000°dONLNd£Û*ˇ◊)(#The Apple event handler failed when°dONLNd«ˇ* ⁄* %attempting to handle the Apple event.°dONLNdÌÑÌ(7¢errAENoSuchSortType°dONLNd )~–10017°dONLNd*€)($The keyAESortType parameter is not a°dONLNd-*'f* known value.(‰N12)$Apple Event Registryˇ ∫◊#ˇ ˇˇˇˇ#◊ 
  1643. d, Palatino
  1644. .°dONLNdJH[µ+fv,Object classes defined in the Database suite `d`
  1645. °dONLNd-oH{≥*!QThe Apple event object classes defined in the Database suite are described in the°dONLNd}Hâ/*7following sections. Table 2 lists these object classes.,
  1646.  
  1647. Zapf Dingbats
  1648. °dONLNd∏§H´N*$n
  1649. °dONLNd∫¢XÆy+Table 2°dONLNd¬¢íÆé):8Apple event object classes defined in the Database suite
  1650.     °dONLNd˚∫H≈è(·fObject class ID°dONLNd ∫ÿ≈)ê Description ÷d÷ ÊdÊ
  1651. °dONLNd–H‹`(¯fcCell°dONLNd–Ÿ‹-)ëA cell from a table°dONLNd1fiÿÍ
  1652. (ˆ Properties:°dONLNd=fi-ÍÀ)U pBestType, pClass, pDefaultType,°dONLNd^Ï-¯‹*$pFormula, pLock, pName, pProtection,°dONLNdÉ˙-ç*pRepeatsize, pValue°dONLNdóÿ$(0ˆElement Classes:°dONLNd®-E)UNone°dONLNd≠H$n(@fcColumn°dONLNdµŸ$])ëA column of cells from a table°dONLNd‘&ÿ2
  1653. (Nˆ Properties:°dONLNd‡&-2≠)UpAccess, pBestType, pClass,°dONLNd¸4-@¬*pDefaultType, pFormula, pLock,°dONLNdB-Næ*pName, pNullsOk, pProtection,°dONLNd9P-\•*pRepeating, pRepeatSize,°dONLNdR^-jo* pUniqueValue°dONLNd_lÿx$(îˆElement Classes:°dONLNdpl-xp)UcCell, cColumn°dONLNd|Hàx(§f    cDatabase°dONLNdâ|Ÿà
  1654. A database°dONLNdîäÿñ
  1655. (≤ˆ Properties:°dONLNd†ä-ñ≠)UpAccess, pBestType, pClass,°dONLNdºò-§µ*pDefaultType, pLock, pName°dONLNd◊¶ÿ≤$(ŒˆElement Classes:°dONLNd˶-≤u)UcSession, cTable°dONLNd˘∂H¬j(fifcDBMS°dONLNdˇ∂Ÿ¬i)ëA database management system°dONLNdƒÿ–
  1656. (ψ Properties:°dONLNd(ƒ-–À)U pBestType, pClass, pDefaultType,°dONLNdI“-fiO*pName°dONLNdO‡ÿÏ$(ˆElement Classes:°dONLNd`‡-Ïá)UcDatabase, cSession°dONLNdtH¸b(fcHost°dONLNdzŸ¸Æ)ë,A network host containing a DBMS or database°dONLNd߲ÿ
  1657. 
  1658. (&ˆ Properties:°dONLNd≥˛-
  1659. À)U pBestType, pClass, pDefaultType,°dONLNd‘ -O*pName°dONLNd⁄ÿ&$(BˆElement Classes:°dONLNdÎ-&Æ)UcDatabase, cDBMS, cSession°dONLNd*H6_(RfcKey°dONLNd *Ÿ6-)ëAn indexed column°dONLNd8ÿD
  1660. (`ˆ Properties:°dONLNd)8-D≈)U pBestType, pClass, pCurrentSort,°dONLNdJF-Rò*pDefaultType, pName,°dONLNd_T-`≥*pPrimaryKey, pUniqueValue°dONLNdybÿn$(äˆElement Classes:°dONLNdäb-nS)UcColumn°dONLNdìàΔî˘+ô& (continued)(‰òThe Database Suite)t13ˇ    ⁄◊#ˇ ˇˇˇˇ#◊ 
  1661. d,
  1662.  
  1663. Zapf Dingbats
  1664. .°dONLNdD0K6+Nin, Palatino
  1665. °dONLNdB@Na+Table 2°dONLNd
  1666. BzNx):9Apple event object classes defined in the Database suite 
  1667.     °dONLNdCCxN®)˛ (continued)°dONLNdOZ0ew(ÅNObject class ID°dONLNd_Z¿eˆ)ê Description vLvˇ ÜLܡ
  1668. °dONLNdkp0|H(òNcRow°dONLNdpp¡|7)ëA row of cells from a table°dONLNdå~¿äÚ(¶fi Properties:°dONLNdò~äï)UpAccess, pBestType, pClass,°dONLNd¥åòê*pDefaultType, pID, pLock,°dONLNdŒö¶p*pName, pProtection°dONLNd·®¿¥ (–fiElement Classes:°dONLNdÚ®¥P)U
  1669. cCell, cTable°dONLNd∏0ƒr(‡N
  1670. cRowSelection°dONLNd∏¡ƒ2)ëA saved selection of rows°dONLNd(Δ¿“Ú(Ófi Properties:°dONLNd4Δ“ï)UpAccess, pBestType, pClass,°dONLNdP‘‡õ*pDefaultType, pKind, pLock,°dONLNdl‚Óü*pName, pProtection, pRowIDs°dONLNdà¿¸ (fiElement Classes:°dONLNdô¸t)UcColumn, cKey, cRow°dONLNd≠0 U((NcSession°dONLNd∂¡ ï)ë/An active session connected to a host, DBMS, or°dONLNdÊ¡Î*database°dONLNdÔ¿(Ú(Dfi Properties:°dONLNd˚(õ)UpAccount, pBestType, pClass,°dONLNd*6î*pDefaultType, pGuest, pID,°dONLNd38D°*pOpenTransaction, pPassword,°dONLNdPFR0*pUser°dONLNdVT¿` (|fiElement Classes:°dONLNdgT`-)UNone°dONLNdld0pN(åNcTable°dONLNdsd¡p•)ë3A table of rows, columns, and cells from a database°dONLNdßr¿~Ú(öfi Properties:°dONLNd≥r~ï)UpAccess, pBestType, pClass,°dONLNdœÄåõ*pDefaultType, pKind, pLock,°dONLNdÎéöp*pName, pProtection°dONLNd˛ú¿® (ƒfiElement Classes:°dONLNdú®ë)UcCell, cColumn, cKey, cRow°dONLNd*¿0Ãü(ËNTFigure 1 illustrates the inheritance hierarchy for the object classes defined in the°dONLNdŒ0⁄§*UDatabase suite. Listed for each object class are the properties, element classes, and°dONLNd’‹0ËÉ*KApple events that have not been inherited from object classes higher in the°dONLNd!Í0ˆô*inheritance hierarchy.*“14)$Apple Event Registryˇ◊#ˇ ˇˇˇˇ#◊ 
  1671. d,
  1672.  
  1673. Zapf Dingbats
  1674. .°dONLNdDHKN+fin, Palatino
  1675. °dONLNdBXN|+Figure 1°dONLNd BíN}):3Object inheritance hierarchy for the Database suite†Ç†å
  1676. ÖfèÛ    1áhö±    ˇˇˇˇˇˇˇˇ8°ñ °öˇ˝
  1677. äzñù,Times.
  1678. ç
  1679. ç°dONLNdˇˇ(ì{cObject†ó°ñ °ö@"
  1680. úi.ØŒ‡°dONLNdˇˇ(•j
  1681. pBestType
  1682. !İdONLNdˇˇ* pClass
  1683. À¿°dONLNdˇˇ*
  1684. pDefaultType
  1685. R¿°dONLNdˇˇ* Clone
  1686. ƒ‡°dONLNdˇˇ* Count Element
  1687. F¿°dONLNdˇˇ* Create Element
  1688. nİdONLNdˇˇ* Delete
  1689. Ö‡°dONLNdˇˇ* Do Objects Exist
  1690. f`°dONLNdˇˇ* Get Class Info
  1691. ÷†°dONLNdˇˇ*     Get Data
  1692. ≈†°dONLNdˇˇ* Get Data Size
  1693. fi‡°dONLNdˇˇ* Move
  1694. £°dONLNdˇˇ* Set Data†ó
  1695. ÖfèÛ ê±ê@    1àBõã    ˇˇˇˇˇˇˇˇ8°ñ °öˇ¸ 
  1696. ãWóq°dONLNdˇˇ(îXcHost†ó°ñ °ö'
  1697. ú@ÿëÔ°dONLNdˇˇ(•ApName
  1698. Œ‡°dONLNdˇˇ*
  1699. cDatabase
  1700. „ °dONLNdˇˇ* cDBMS
  1701. ©¿°dONLNdˇˇ* cSession߇)#
  1702. †ó
  1703. ÖfèÛ"êBÓ    1˙‘
  1704.     ˇˇˇˇˇˇˇˇ8°ñ °öC!
  1705. ’©°dONLNdˇˇ(÷pAccess
  1706. – °dONLNdˇˇ*     pFormula
  1707. ±‡°dONLNdˇˇ* pLock
  1708. =‡°dONLNdˇˇ* pName
  1709. ¿°dONLNdˇˇ*     pNullsOk
  1710.  °dONLNdˇˇ* pProtection
  1711. `°dONLNdˇˇ* pRepeating
  1712. § °dONLNdˇˇ* pRepeatSize
  1713. ûİdONLNdˇˇ*
  1714. pUniqueValue
  1715. Ó°dONLNdˇˇ* cCell
  1716. İdONLNdˇˇ* cColumn
  1717. ≤¿°dONLNdˇˇ* Group
  1718. †ó°ñ °öˇ¸
  1719. ˝‰     ]†°dONLNdˇˇ(ÂcColumn†ó
  1720. ÖfèÛ"‘Ԇ堠  1ò‘´    ˇˇˇˇˇˇˇˇ8°ñ °ö
  1721. ≠’ı    °dONLNdˇˇ(∂÷    pFormula
  1722. a¿°dONLNdˇˇ* pLock
  1723. Ì¿°dONLNdˇˇ* pName
  1724. Õ†°dONLNdˇˇ* pProtection
  1725. ʇ°dONLNdˇˇ* pRepeatSize
  1726. ·@°dONLNdˇˇ* pValue†ó°ñ °öˇ˝
  1727. 
  1728. úÍ®¡ °dONLNdˇˇ(•ÎcCell†ó
  1729. ÖfèÛ"°‘Ԇ砠  1•”∏    ˇˇˇˇˇˇˇˇ8°ñ °ö)
  1730. π”ı'°dONLNdˇˇ(¬‘pAccess                     
  1731. P °dONLNdˇˇ* pLock
  1732. ‹ °dONLNdˇˇ* pName
  1733. º°dONLNdˇˇ*     cSession
  1734. ∫ °dONLNdˇˇ* cTable†ó
  1735. ÖfèÛ"Ɣ԰ñ °öˇ˝
  1736. ¶›≤
  1737. °dONLNdˇˇ(Øfi    cDatabase†ó
  1738. ÖfèÛ    1˙‘
  1739.     ˇˇˇˇˇˇˇˇ8°ñ °ö%
  1740. ‘I"_@°dONLNdˇˇ(’pName
  1741. ? °dONLNdˇˇ*
  1742. cDatabase
  1743. S`°dONLNdˇˇ*     cSession
  1744. QÄ* 
  1745. †ó
  1746. ÖfèÛ"‘Ó°ñ °öˇ¸
  1747. ˝·    °dONLNdˇˇ(‚cDBMS†ó†å
  1748. ÖfèÛ    1™Û    ˇˇˇˇˇˇˇˇ8°ñ °öˇ¸!
  1749. ™Ô”@°dONLNdˇˇ+…  ”@°dONLNdˇˇ)
  1750. cRowSelection†ó°ñ °ö
  1751. ™/“ °dONLNdˇˇ( ´pRowIDs
  1752. †ó
  1753. ÖfèÛ" Ü$†ç†å    1ìA¶ä    ˇˇˇˇˇˇˇˇ8†å    1?à    ˇˇˇˇˇˇˇˇ8°ñ °öˇ¸
  1754. 
  1755. Rp°dONLNdˇˇ(ScTable†ó°ñ °ö2
  1756. ?éob`°dONLNdˇˇ( @pAccess
  1757. ≤İdONLNdˇˇ* pKind
  1758. ±‡°dONLNdˇˇ* pLock
  1759. =‡°dONLNdˇˇ* pName
  1760. ¿°dONLNdˇˇ* pProtection
  1761. 7°dONLNdˇˇ* cCell
  1762. QİdONLNdˇˇ* cColumn
  1763. ˚¿°dONLNdˇˇ* cKey
  1764. `°dONLNdˇˇ* cRow
  1765. h@°dONLNdˇˇ* Sort†ó
  1766. ÖfèÛ" ?Ó†ç°ñ °öˇ¸
  1767. óS£x°dONLNdˇˇ(†TcSession†ó°ñ °ö -
  1768. ®B˚†
  1769. @°dONLNdˇˇ(±C    pAccount
  1770. Ì °dONLNdˇˇ* pGuest
  1771. @`°dONLNdˇˇ* pID
  1772. Ã`°dONLNdˇˇ* pOpenTransaction
  1773. ß@°dONLNdˇˇ*
  1774. pPassword
  1775. ˘‡°dONLNdˇˇ* pUser
  1776. Ÿ¿°dONLNdˇˇ* Begin Transaction†ó
  1777. ÖfèÛ"ú@Ó†ç°ñ °ö&
  1778. 2Aëq°dONLNdˇˇ(;BpAccess
  1779. – °dONLNdˇˇ* pID
  1780. \ °dONLNdˇˇ* pLock
  1781. Ë °dONLNdˇˇ* pName
  1782. »°dONLNdˇˇ* pProtection
  1783. ·@°dONLNdˇˇ* cCell
  1784. ˚¿°dONLNdˇˇ* cTable
  1785. /İdONLNdˇˇ* Sort†ó†å
  1786. ÖfèÛ    1@2â    ˇˇˇˇˇˇˇˇ8°ñ °öˇ¸ 
  1787. #W/piİdONLNdˇˇ(,XcRow†ó
  1788. ÖfèÛ")@Ó†ç†å    1Œ@·â    ˇˇˇˇˇˇˇˇ8"ÿ@Ó°ñ °öˇ¸
  1789. 
  1790. ”Ufll°dONLNdˇˇ(‹VcKey†ó†ç°ñ °ö!
  1791. ‚Cá'¿°dONLNdˇˇ(ÎD
  1792. pCurrentSort
  1793. \¿°dONLNdˇˇ* pName
  1794. <†°dONLNdˇˇ* pPrimaryKey
  1795. †°dONLNdˇˇ*
  1796. pUniqueValue
  1797. j °dONLNdˇˇ* cColumn†ó
  1798. ÖfèÛ  .ê. ¬ê¬†ç†É
  1799. d.(‰•The Database Suite)g15ˇ ÷◊#ˇ ˇˇˇˇ#◊ 
  1800. d, Palatino
  1801. .°dONLNdJ0[ˆ+NvCell—a cell from a table `L`ˇ
  1802. °dONLNdg0sD*The °dONLNdgDs^)cCell °dONLNd#g^s )/object class is the class for atomic data in a °dONLNdRg s>)¬DBMS°dONLNdVg>s‡)(. It is an extension of the cCell object°dONLNdu0Åü(ùNUclass defined in the Table suite. The intersection of a row and a column is called a °dONLNd‘uüÅ∞(ùΩcell°dONLNdÿu∞Åfl)
  1803. . The data°dONLNd„É0èπ(´NZcontained in a cell is called atomic data. The contents of a cell may be of any data type,°dONLNd>ë0ùƒ*Xhowever all cells in one column typically have the same data type. This data type can be°dONLNdóü0´ë*accessed through the °dONLNd¨üë´‘)a
  1804. pDefaultType °dONLNdπü‘´b)C property and can be returned as °dONLNdŸüb´|)écText °dONLNdflü|´fl)by a coercion handler.°dONLNdˆ∑0√`(flN
  1805. Superclass°dONLNd∑Ñ√¶)TcObject °dONLNd    ∑¶√€)" (Core suite)°dONLNdˇˇ(¢typeCell°dONLNdœ0€T(˜NDefault°dONLNd›0È`*
  1806. Descriptor°dONLNd)Î0˜G*Type°dONLNd90_*
  1807. Properties°dONLNdEZ!ã+*    pBestType°dONLNdO%Ñ1º+* Description:°dONLNd\%Ì1∫)i-The descriptor type that can contain the most°dONLNdä1Ó=≠+ -information from objects of this object class°dONLNd∏AÑMÃ(i¢Object Class ID:°dONLNd…AÌM)icType°dONLNdœQÑ]µ(y¢
  1808. Inherited?°dONLNd⁄QÌ])i
  1809. Yes, from °dONLNd‰Q]9),cObject°dONLNdÏaÑm√(â¢
  1810. Modifiable or°dONLNd˚mÑy”* Non-modifiable?°dONLNd mÌy7)iNon-modifiable°dONLNdZãy(ßxpClass°dONLNd!èÑõº+* Description:°dONLNd.èÌõΩ)i0The four-character class ID for the object class°dONLNd_üÑ´Ã(«¢Object Class ID:°dONLNdpüÌ´)icType°dONLNdvØÑªµ(◊¢
  1811. Inherited?°dONLNdÅØÌª9)iYes, from cObject°dONLNdìøÑÀ√(Á¢
  1812. Modifiable or°dONLNd¢ÀÑ◊”* Non-modifiable?°dONLNd≤ÀÌ◊7)iNon-modifiable°dONLNd¡›ZÈõ(x pDefaultType°dONLNdŒÏѯº+* Description:°dONLNd€Ï̯æ)i0The default descriptor type for the object class°dONLNd ˚ÑÃ(#¢Object Class ID:°dONLNd˚Ì)icType°dONLNd#
  1813. ѵ(2¢
  1814. Inherited?°dONLNd.
  1815. Ì9)iYes, from cObject°dONLNd@Ñ%√(A¢
  1816. Modifiable or°dONLNdO%Ñ1”* Non-modifiable?°dONLNd_%Ì17)iNon-modifiable°dONLNdn7ZCÜ(_xpFormula°dONLNdwFÑRº+* Description:°dONLNdÑFÌRŒ)i3The formula for the cell (inherits or overrides the°dONLNd∏RÓ^^+ column's formula, if any)°dONLNd“aÑmÃ(â¢Object Class ID:°dONLNd„aÌm)icText°dONLNdÈpÑ|µ(ò¢
  1817. Inherited?°dONLNdÙpÌ|˚)iNo°dONLNd˜Ñã√(ߢ
  1818. Modifiable or°dONLNdãÑó”* Non-modifiable?°dONLNdãÌó!)i
  1819. Modifiable(‰N16)$Apple Event Registryˇ
  1820. ◊#ˇ ˇˇˇˇ#◊ 
  1821. d, Palatino
  1822. .°dONLNdArMç+êipLock°dONLNdQú]‘+* Description:°dONLNdQ]Ù)i8The lock status of the object in the current transaction°dONLNdL]i∫+ ((The value must be one of the following:°dONLNduiuŒ* )kExclusiveLock, kNoLock, or kSharedLock.)°dONLNdüyúÖ‰(°∫Object Class ID:°dONLNd∞yÖL)i
  1823. enumLockTypes°dONLNdæâúïÕ(±∫
  1824. Inherited?°dONLNd…âï)iNo°dONLNdÃôú•€(¡∫
  1825. Modifiable or°dONLNd€•ú±Î* Non-modifiable?°dONLNdΕ±9)i
  1826. Modifiable°dONLNdˆ∑r√î(flêpName°dONLNd¸«ú”‘+* Description:°dONLNd    «”a)iThe name of the cell°dONLNd◊ú„‰(ˇ∫Object Class ID:°dONLNd/◊„)icText°dONLNd5ÁúÛÕ(∫
  1827. Inherited?°dONLNd@ÁÛ)iNo°dONLNdC˜ú€(∫
  1828. Modifiable or°dONLNdRúÎ* Non-modifiable?°dONLNdb9)i
  1829. Modifiable°dONLNdmr!¶(=ê pProtection°dONLNdy%ú1‘+* Description:°dONLNdÜ%1¯)i3Specifies whether the elements or pFormula property°dONLNd∫1=Ï+ 4of the cell can be changed (The value must be one of°dONLNdÔ=IÓ* .the following: kAEFormulaProtect, kAEReadOnly,°dONLNdIU`* or kAEReadWrite.)°dONLNd0Yúe‰(Å∫Object Class ID:°dONLNdAYeJ)ienumProtection°dONLNdPiúuÕ(ë∫
  1830. Inherited?°dONLNd[iu)iNo°dONLNd^yúÖ€(°∫
  1831. Modifiable or°dONLNdmÖúëÎ* Non-modifiable?°dONLNd}Öë9)i
  1832. Modifiable°dONLNdàór£≠(øê pRepeatSize°dONLNdîßú≥‘+* Description:°dONLNd°ß≥Œ)i-Indicates the actual number of values for the°dONLNdœ≥øH+ particular cell°dONLNdfl√úœ‰(Î∫Object Class ID:°dONLNd√œ>)i cLongInteger°dONLNd˝”úflÕ(˚∫
  1833. Inherited?°dONLNd”fl)iNo°dONLNd „úÔ€( ∫
  1834. Modifiable or°dONLNdÔú˚Î* Non-modifiable?°dONLNd)Ô˚O)iNon-modifiable°dONLNd8r
  1835. î()êpValue°dONLNd?ú‘+* Description:°dONLNdL_)iThe data in the cell°dONLNda!ú-‰(I∫Object Class ID:°dONLNdr!-)icText°dONLNdx1ú=Õ(Y∫
  1836. Inherited?°dONLNdÉ1=)iNo°dONLNdÜAúM€(i∫
  1837. Modifiable or°dONLNdïMúYÎ* Non-modifiable?°dONLNd•MY9)i
  1838. Modifiable+uoThe Database Suite)t17ˇV◊#ˇ ˇˇˇˇ#◊ 
  1839. d, Palatino
  1840. .°dONLNdC0Oy+NkElement Classes°dONLNdCÑOú)TNone°dONLNd[0gm(ÉN Apple Events°dONLNd"[Ñg)T!Apple events from the Core suite:°dONLNdDkÑwÃ*Do Objects Exist°dONLNdUkÂwJ)aInherited from cObject°dONLNdl{ÑáÆ(£¢Get Data°dONLNdu{ÂáJ)aInherited from cObject°dONLNdåãÑóƒ(≥¢
  1841. Get Data Size°dONLNdöãÂóJ)aInherited from cObject°dONLNd±õÑß≠(√¢Set Data°dONLNd∫õÂßJ)aInherited from cObject°dONLNd—≥0øK(€NNotes°dONLNd◊≥Ñø¥)TEThe actual number of values for a particular cell is indicated by the°dONLNd¡ÑÕ∂*ApRepeatSize property of cCell, while the pValue property contains°dONLNd_œÑ€≤*Da list of values for that cell. The pRepeatSize property reports the°dONLNd§›Ñȱ*Bnumber of items in a list, while the pDefaultType property reports°dONLNdÁÎј*!the type of elements in the list.°dONLNd
  1842. Ñ
  1843. ß*Locking°dONLNdß
  1844. Ø)#= is used by a database in order to prevent two or more client°dONLNdOц(7¢=applications from making simultaneous changes to stored data.°dONLNdçÑ)µ*FLocking requires a client application to obtain an exclusive lock on a°dONLNd‘+Ñ7∏*Epiece of data before being allowed to modify it. A client application°dONLNd9ÑE®*Ccan also request a shared lock in order to prevent other users from°dONLNd^GÑSñ*=obtaining an exclusive lock. A shared lock does not allow the°dONLNdúUÑaû*>requesting client application to modify the data. For example,°dONLNd€cÑo∞*Csuppose one client application wants to run a report which requires°dONLNdqÑ}∂*Feach row to be read exactly once, in the order of a particular column.°dONLNdfÑãØ*DThe client application can request a shared lock on the table object°dONLNd´çÑô∫*Ethat will prevent any exclusive locks from being granted on the table°dONLNdÒõÑ߆*Aobject or any other objects contained in the table. A lock always°dONLNd3©Ñµ∫*Gapplies to the locked object and to any objects contained in the locked°dONLNd{∑Ñ√¥*Fobject. Linkset tables that are contained in a row are an exception to°dONLNd¬≈Ñ—ß*Dthis. (Refer to the section describing the cRow object class for the°dONLNd”ÑflÊ*definition of linkset.)°dONLNdÈÑı∫*ELocking a row should not lock every linked row, rather it should lock°dONLNde˜Ñì*?only the cells in the row. Once the table is locked, the client°dONLNd•ÑÆ*Aapplication can begin reading the rows with the assurance that no°dONLNdÁÑ∫*Fother client application will delete, or modify the rows in the table.°dONLNd.)Ñ5≥*FThe usual procedure is to lock a row before reading or updating it. If°dONLNdu7ÑC∫*Grequired, a client application can also lock individual cells, columns,°dONLNdΩEÑQ∏*Fwhole tables, or databases. If a user is browsing through records, the°dONLNdSÑ_º*Gclient application can obtain a shared lock on the record that is being°dONLNdLaÑm∏*Dbrowsed and later upgrade the lock status to exclusive when the user°dONLNdëoÑ{©*Ddecides to edit the record. To lock an object the client application°dONLNd÷}ÑâK*-simply sets the pLock property of the object.(‰N18)$Apple Event Registryˇî◊#ˇ ˇˇˇˇ#◊ 
  1845. d, Palatino
  1846. .°dONLNdCúO—+∫kFTimeout or deadlock errors may be returned in response to a request to°dONLNdGQú]Ê*lock an object. A °dONLNdYQÊ])J    deadlock °dONLNdbQ]Õ),*occurs when two users try to lock the same°dONLNdç_úkÃ(á∫Gtwo objects in the reverse order. For example, if user A locks object A°dONLNd’múy¬*Fand user B locks object B, it would not be possible for user A to lock°dONLNd{úáÕ*Fobject B because it was already locked by user B. It follows that user°dONLNdcâúï”*GB will also encounter the same problem if it attempts to lock object A.°dONLNd´óú£ƒ*AThe server resolves this problem by detecting the deadlock at the°dONLNdÌ•ú±R*(point where the last lock was requested.°dONLNd∫úΔ∫*AA timeout error occurs whenever a lock request issued by a client°dONLNdX»ú‘”*Fapplication is not used or referenced by the client application within°dONLNdü÷ú‚»*Ea certain time frame. This causes the server to give up on the client°dONLNd‰ú…*Dapplication and issue a timeout error. Timing out a lock request has°dONLNd*Úú˛Ã*Eits own drawback. If the timeout is too short, the client application°dONLNdpú «*Dmay just retry the lock request. This in turn may prevent the server°dONLNdµú¿*Afrom seeing the deadlock, because the cycle is always one request°dONLNd˜ú(“*Eshort. Because of this, database applications are encouraged to abort°dONLNd=*ú6”*Da transaction whenever a lock request is canceled. For example, when°dONLNdÇ8úD«*Ba Set Data Apple event is performed on a locked property, it could°dONLNd≈FúR≈*Fresult in a request that returns an error message. In such a case, the°dONLNd Tú`ò*8application should abort the transaction and start over.°dONLNdEiúu≈*BClient applications cannot see the locked status obtained by other°dONLNdàwúɬ*Cclient applications. This is to discourage client applications from°dONLNdÃÖúëœ*Bimplementing their own polling mechanism for obtaining locks, such°dONLNdìúüΩ*@as polling until the status becomes kNoLock. This is not allowed°dONLNdP°ú≠º*@because the server must maintain a complete list of pending lock°dONLNdëØúªT**requests in order to detect any deadlocks.°dONLNdºƒú––*COn the other hand, a client application can read the pLock property°dONLNd“úfiœ*Iof an object to find out the locked status of that object with respect to°dONLNdJ‡úÏÀ*Da particular client application or transaction. Only locks that were°dONLNdèÓú˙¿*@set by the client application are revealed; otherwise kNoLock is°dONLNd–¸ú≈*    returned.°dONLNd⁄úœ*ELocks are used during transactions that operate on the data stored in°dONLNd ú+Œ*Ea database. Since the data must be locked before it is changed, locks°dONLNdf-ú9¥*Bare usually obtained in the context of a transaction. If a lock is°dONLNd©;úG¿*Bobtained in the context of a transaction, the server will normally°dONLNdÏIúU«*Drequire that the locks be retained until the transaction either ends°dONLNd    1Wúc“*Fnormally or aborts. Thus, any attempt to release a lock by setting the°dONLNd    xeúqº*>pLock property to kNoLock will be ignored without returning an°dONLNd    ∑sú∫*@error. Furthermore, when the transaction ends or is aborted, the+fiIThe Database Suite)t19ˇÆ◊#ˇ ˇˇˇˇ#◊ 
  1847. d, Palatino
  1848. .°dONLNdCÑO°+¢k?server will automatically release all locks obtained during the°dONLNd@QÑ]∫* transaction.°dONLNdMgÑs±*FIf a lock is obtained outside the context of any transaction, the lock°dONLNdîuÑÅR*-must be released by setting pLock to kNoLock.°dONLNd¬ãÑó*"The possible error conditions are:,
  1849.  
  1850. Zapf Dingbats
  1851. °dONLNd†Ñßä*n
  1852. °dONLNdÁùí©®);errAEDeadLock - a deadlock was detected. The transaction is°dONLNd#´í∑∏*aborted.
  1853. °dONLNd,¿Ñ«ä(¢n
  1854. °dONLNd.Ωí…ì)7errAELockRequestTimeout - a lock request timed out. The°dONLNdfÀí◊˜*transaction is aborted.
  1855. °dONLNd~‡ÑÁä(¢n
  1856. °dONLNdÄ›íȨ)=errAELockRequestTimeout - should be returned if a transaction°dONLNdæÎ혨*>remains inactive for a long period of time without any pending°dONLNd˝˘í£*?lock request, as in the case of the client application that has°dONLNd=íº*Dfailed to continue the transaction, and no possible deadlocks exist.°dONLNdÇí!ª*CA well designed server would return this error only if the inactive°dONLNdΔ#í/±*Btransaction is blocking a lock request from an active transaction.°dONLNd    1í=°*;This is a good approach for handling deadlocks that are not°dONLNdE?íK•*=detected properly by the server, such as situations where the°dONLNdÉMíY¥*Aclient applications are polling database attributes on their own.(‰N20)$Apple Event Registryˇ F◊#ˇ ˇˇˇˇ#◊ 
  1857. d, Palatino
  1858. .°dONLNdJH[ç+fv%Column—a column of cells from a table `d`
  1859. °dONLNd&gHs\*The °dONLNd*g\sÑ)cColumn °dONLNd2gÑsœ)(Oobject class is the class for the representation of a single column in a table.°dONLNdÇHãx(ßf
  1860. Superclass°dONLNdçúãæ)TcObject °dONLNdïæãÛ)" (Core suite)°dONLNdˇˇ(€∫
  1861. typeColumn°dONLNd¢óH£l(øfDefault°dONLNd™•H±x*
  1862. Descriptor°dONLNd∂≥Hø_*Type°dONLNd»ÀH◊w*
  1863. Properties°dONLNd‘›rÈï+*pAccess°dONLNd‹Ìú˘‘+* Description:°dONLNdÈÌ˘€)i0Access privileges. (The value must be one of the°dONLNd˘º+ (following or an additive combination of:°dONLNdCH*
  1864. kCreateAccess°dONLNdPHè)B, kDeleteAccess°dONLNd_èœ)G
  1865. , kReadAccess°dONLNdlœ“)@,°dONLNdnL(9$
  1866. kUpdateAccess°dONLNd{L\)F, or °dONLNdÄ\õ) kWriteAccess°dONLNdåõ¢)?.)°dONLNdè!ú-‰(I∫Object Class ID:°dONLNd†!-9)i
  1867. enumAccess°dONLNd´1ú=Õ(Y∫
  1868. Inherited?°dONLNd∂1=)iNo°dONLNdπAúM€(i∫
  1869. Modifiable or°dONLNd»MúYÎ* Non-modifiable?°dONLNdÿMYO)iNon-modifiable°dONLNdÁ_rk£(áê    pBestType°dONLNdÒoú{‘+* Description:°dONLNd˛o{“)i-The descriptor type that can contain the most°dONLNd,{á≈+ -information from objects of this object class°dONLNdZãúó‰(≥∫Object Class ID:°dONLNdkãó )icType°dONLNdqõúßÕ(√∫
  1870. Inherited?°dONLNd|õß1)i
  1871. Yes, from °dONLNdÜõ1ßQ),cObject°dONLNdé´ú∑€(”∫
  1872. Modifiable or°dONLNdù∑ú√Î* Non-modifiable?°dONLNd≠∑√O)iNon-modifiable°dONLNdº…r’ë(ÒêpClass°dONLNd√Ÿú‘+* Description:°dONLNd–ŸÂ’)i0The four-character class ID for the object class°dONLNdÈúı‰(∫Object Class ID:°dONLNdÈı )icType°dONLNd˘úÕ(!∫
  1873. Inherited?°dONLNd#˘Q)iYes, from cObject°dONLNd5    ú€(1∫
  1874. Modifiable or°dONLNdDú!Î* Non-modifiable?°dONLNdT!O)iNon-modifiable°dONLNdc'r3≥(Oê pDefaultType°dONLNdp7úC‘+* Description:°dONLNd}7C÷)i0The default descriptor type for the object class°dONLNdÆGúS‰(o∫Object Class ID:°dONLNdøGS )icType°dONLNd≈WúcÕ(∫
  1875. Inherited?°dONLNd–WcQ)iYes, from cObject°dONLNd‚gús€(è∫
  1876. Modifiable or°dONLNdÒsúÎ* Non-modifiable?°dONLNdsO)iNon-modifiable+uIThe Database Suite)t21ˇ
  1877. 8◊#ˇ ˇˇˇˇ#◊ 
  1878. d, Palatino
  1879. .°dONLNdAZMÜ+xipFormula°dONLNd    QÑ]º+* Description:°dONLNdQÌ]Œ)i3The formula for the cell (inherits or overrides the°dONLNdJ]Ói^+ column's formula, if any)°dONLNddmÑyÃ(ï¢Object Class ID:°dONLNdumÌy)icText°dONLNd{}Ñâµ(•¢
  1880. Inherited?°dONLNdÜ}Ìâ˚)iNo°dONLNdâçÑô√(µ¢
  1881. Modifiable or°dONLNdòôÑ•”* Non-modifiable?°dONLNd®ôÌ•!)i
  1882. Modifiable°dONLNd≥´Z∑u(”xpLock°dONLNdπªÑ«º+* Description:°dONLNdΔªÌ«fl)i9The lock status of the object in the current transaction.°dONLNd«Ó”¢+ ((The value must be one of the following:°dONLNd)”Ófl∂* )kExclusiveLock, kNoLock, or kSharedLock.)°dONLNdS„ÑÔÃ( ¢Object Class ID:°dONLNdd„ÌÔ4)i
  1883. enumLockTypes°dONLNdrÛÑˇµ(¢
  1884. Inherited?°dONLNd}ÛÌˇ˚)iNo°dONLNdÄÑ√(+¢
  1885. Modifiable or°dONLNdèÑ”* Non-modifiable?°dONLNdüÌ!)i
  1886. Modifiable°dONLNd™!Z-|(IxpName°dONLNd∞1Ñ=º+* Description:°dONLNdΩ1Ì=W)iThe name of the column°dONLNd‘AÑMÃ(i¢Object Class ID:°dONLNdÂAÌM)icText°dONLNdÎQÑ]µ(y¢
  1887. Inherited?°dONLNdˆQÌ]˚)iNo°dONLNd˘aÑm√(â¢
  1888. Modifiable or°dONLNdmÑy”* Non-modifiable?°dONLNdmÌy!)i
  1889. Modifiable°dONLNd#Zãà(ßxpNullsOk°dONLNd,èÑõº+* Description:°dONLNd9èÌõ–)i1Indicates whether nulls are allowed in the column°dONLNdküÑ´Ã(«¢Object Class ID:°dONLNd|üÌ´)icBoolean°dONLNdÖØÑªµ(◊¢
  1890. Inherited?°dONLNdêØÌª˚)iNo°dONLNdìøÑÀ√(Á¢
  1891. Modifiable or°dONLNd¢ÀÑ◊”* Non-modifiable?°dONLNd≤ÀÌ◊7)iNon-modifiable°dONLNd¬›ZÈé(x pProtection°dONLNdŒÌÑ˘º+* Description:°dONLNd€ÌÌ˘‡)i3Specifies whether the elements or pFormula property°dONLNd˘Ó◊+ 5of the cell can be changed. (The value must be one of°dONLNdEÓ÷* .the following: kAEFormulaProtect, kAEReadOnly,°dONLNdtÓH* or kAEReadWrite.)°dONLNdÜ!Ñ-Ã(I¢Object Class ID:°dONLNdó!Ì-2)ienumProtection°dONLNd¶1Ñ=µ(Y¢
  1892. Inherited?°dONLNd±1Ì=˚)iNo°dONLNd¥AÑM√(i¢
  1893. Modifiable or°dONLNd√MÑY”* Non-modifiable?°dONLNd”MÌY!)i
  1894. Modifiable(‰N22)$Apple Event Registryˇ
  1895. ◊#ˇ ˇˇˇˇ#◊ 
  1896. d, Palatino
  1897. .°dONLNdArMß+êi
  1898. pRepeating°dONLNd Qú]‘+* Description:°dONLNdQ]˚)i6Indicates whether it is a repeating column. (The value°dONLNdO]i⁄+ -must be one of the following: kAEFixedRepeat,°dONLNd}iuœ* 'kAESingleValued, or kAEVariableRepeat.)°dONLNd•yúÖ‰(°∫Object Class ID:°dONLNd∂yÖ])ienumRepeatValues°dONLNd«âúïÕ(±∫
  1899. Inherited?°dONLNd“âï)iNo°dONLNd’ôú•€(¡∫
  1900. Modifiable or°dONLNd‰•ú±Î* Non-modifiable?°dONLNdÙ•±O)iNon-modifiable°dONLNd∑r√≠(flê pRepeatSize°dONLNd«ú”‘+* Description:°dONLNd«”)i2Specifies the maximum number of values that can be°dONLNdO”fl⁄+ 1stored in each cell of a column. For fixed repeat°dONLNdÅflΈ* 5columns, this property indicates the number of values°dONLNd∑ΘÔ* 5that can be stored in each cell of a column, whereas,°dONLNd̘Õ* -for variable repeat columns, it indicates the°dONLNd¯* 4maximum possible number of values that can be stored°dONLNdP;* in a column.°dONLNd^ú+‰(G∫Object Class ID:°dONLNdo+>)i cLongInteger°dONLNd|/ú;Õ(W∫
  1901. Inherited?°dONLNdá/;)iNo°dONLNdä?úK€(g∫
  1902. Modifiable or°dONLNdôKúWÎ* Non-modifiable?°dONLNd©KWO)iNon-modifiable°dONLNd∏]ri¥(Öê pUniqueValue°dONLNd≈múy‘+* Description:°dONLNd“myÒ)i3Indicates whether the values in this column have to°dONLNdyÖ/+     be unique°dONLNdâúï‰(±∫Object Class ID:°dONLNd!âï.)icBoolean°dONLNd*ôú•Õ(¡∫
  1903. Inherited?°dONLNd5ô•)iNo°dONLNd8©úµ€(—∫
  1904. Modifiable or°dONLNdGµú¡Î* Non-modifiable?°dONLNdWµ¡O)iNon-modifiable°dONLNdgŸHÂë(fElement Classes°dONLNdwÎr˜ä+*cCell°dONLNd}˚ú‘+* Description:°dONLNdä˚[)iCells in the column°dONLNdû úÕ(3∫
  1905. Inherited?°dONLNd© )iNo°dONLNd¨ú'€(C∫
  1906. Modifiable or°dONLNdª'ú3Î* Non-modifiable?°dONLNdÀ'39)i
  1907. Modifiable°dONLNd÷7õCŒ(_π
  1908. Key Forms:°dONLNd·7CÓ)j/formAbsolutePosition, formName, formPropertyID,°dONLNdCOÀ* )formRange, formRelativePosition, formTest+uyThe Database Suite)t23ˇ .◊#ˇ ˇˇˇˇ#◊ 
  1909. d, Palatino
  1910. .°dONLNdAZMÄ+xicColumn°dONLNdQÑ]º+* Description:°dONLNdQÌ]V)iColumns contained in a °dONLNd,QV]õ)igrouped column°dONLNd:Qõ] )E , that is, a°dONLNdG]Ói√(Ö /column that contains a number of other columns.°dONLNdwmÑyµ(ï¢
  1911. Inherited?°dONLNdÇmÌy˚)iNo°dONLNdÖ}Ñâ√(•¢
  1912. Modifiable or°dONLNdîâÑï”* Non-modifiable?°dONLNd§âÌï7)iNon-modifiable°dONLNd≥ôÉ•∂(¡°
  1913. Key Forms:°dONLNdæôÌ•÷)j/formAbsolutePosition, formName, formPropertyID,°dONLNdӕ̱≥* )formRange, formRelativePosition, formTest°dONLNdΩ0…m(ÂN Apple Events°dONLNd%ΩÑ…)T!Apple events from the Core suite:°dONLNdGÕÑŸû*Clone°dONLNdMÕ‚ŸG)^Inherited from cObject°dONLNdd›ÑÈ…(¢Count Elements°dONLNds›‚ÈG)^Inherited from cObject°dONLNdäÌÑ˘£(¢Delete°dONLNdëÌ‚˘G)^Inherited from cObject°dONLNd®˝Ñ    Ã(%¢Do Objects Exist°dONLNdπ˝‚    G)^Inherited from cObject°dONLNd–
  1914. Ñ√(5¢Get Class Info°dONLNdfl
  1915. ‚G)^Inherited from cObject°dONLNdˆÑ)Æ(E¢Get Data°dONLNdˇ‚)G)^Inherited from cObject°dONLNd-Ñ9ƒ(U¢
  1916. Get Data Size°dONLNd$-‚9G)^Inherited from cObject°dONLNd;=ÑIù(e¢Move°dONLNd@=‚IG)^Inherited from cObject°dONLNdWMÑY≠(u¢Set Data°dONLNd`M‚YG)^Inherited from cObject°dONLNdw]Ñi2(Ö¢%Apple events from the Database suite:°dONLNdùmÑyü*Group°dONLNd£m‚y")^
  1917. Not inherited°dONLNd±Ö0ëK(≠NNotes°dONLNd∑ÖÑë≥)TBA column may be specified as a repeating column, a grouped column,°dONLNd˙ìÑü*!or a repeating grouped column. A °dONLNdìüf)ïrepeating column°dONLNd+ìfü∞)M is a column that°dONLNd=°Ñ≠∑(…¢Gcan contain a list of values instead of a single value. There are three°dONLNdÖØÑª*types of repeating columns: °dONLNd°ØªS)|kAESingleValued°dONLNd∞ØSª•)S, which is a single°dONLNdƒΩÑ…©(¢number; °dONLNdÃΩ©…¯)%kAEFixedRepeat°dONLNd⁄Ω¯…¥)O(, which is a column with the same number°dONLNdÀÑ◊˚(Û¢of values in each cell; and °dONLNdÀ˚◊Z)wkAEVariableRepeat°dONLNd0ÀZ◊≠)_ which is a column°dONLNdCŸÑÂÜ(¢9where each cell can have a different number of values. A °dONLNd|ŸÜ™(§grouped°dONLNdÑÁÑÛ£(¢column°dONLNdäÁ£Û∏)@ contains no data itself but contains a number of other columns.°dONLNdÀıÑé(¢A °dONLNdÕıé)
  1918. repeating grouped column°dONLNdÂı±)s* contains a list of values for a number of°dONLNdÑ≈(+¢other columns.(‰N24)$Apple Event Registryˇ L◊#ˇ ˇˇˇˇ#◊ 
  1919. d, Palatino
  1920. .°dONLNdJH[+fvDatabase—a database `d`
  1921. °dONLNdgHs`*The c°dONLNdg`sø)Database object class°dONLNd.gøs–)_> is the class for database tables, each of which contains rows°dONLNdnuHÅÅ(ùf and columns.°dONLNd{çHôx*
  1922. Superclass°dONLNdÜçúôº)TcObject°dONLNdççºôÛ) 
  1923.  (Core suite)°dONLNdˇˇ(È∫typeAEDescList°dONLNdõ•H±l(ÕfDefault°dONLNd£≥Høx*
  1924. Descriptor°dONLNdØ¡HÕ_*Type°dONLNd≈ŸHÂw*
  1925. Properties°dONLNd—Îr˜ï+*pAccess°dONLNdŸ˚ú‘+* Description:°dONLNdÊ˚Ë)i3Access privileges. (The value must either be one of°dONLNdŒ+ ,the following or an additive combination of:°dONLNdGH*
  1926. kCreateAccess°dONLNdTHè)B, kDeleteAccess°dONLNdcèœ)G
  1927. , kReadAccess°dONLNdpœ“)@,°dONLNdr+L(G$
  1928. kUpdateAccess°dONLNdL+\)F, or °dONLNdÑ\+õ) kWriteAccess°dONLNdêõ+¢)?.)°dONLNdì/ú;‰(W∫Object Class ID:°dONLNd§/;9)i
  1929. enumAccess°dONLNdØ?úKÕ(g∫
  1930. Inherited?°dONLNd∫?K)iNo°dONLNdΩOú[€(w∫
  1931. Modifiable or°dONLNdÃ[úgÎ* Non-modifiable?°dONLNd‹[gO)iNon-modifiable°dONLNdÎmry£(ïê    pBestType°dONLNdı}úâ‘+* Description:°dONLNd}â“)i-The descriptor type that can contain the most°dONLNd0âï≈+ -information from objects of this object class°dONLNd^ôú•‰(¡∫Object Class ID:°dONLNdoô• )icType°dONLNdu©úµÕ(—∫
  1932. Inherited?°dONLNdÄ©µQ)iYes, from cObject°dONLNdíπú≈€(·∫
  1933. Modifiable or°dONLNd°≈ú—Î* Non-modifiable?°dONLNd±≈—O)iNon-modifiable°dONLNd¿◊r„ë(ˇêpClass°dONLNd«ÁúÛ‘+* Description:°dONLNd‘ÁÛ’)i0The four-character class ID for the object class°dONLNd˜ú‰(∫Object Class ID:°dONLNd˜ )icType°dONLNdúÕ(/∫
  1934. Inherited?°dONLNd'Q)iYes, from cObject°dONLNd9ú#€(?∫
  1935. Modifiable or°dONLNdH#ú/Î* Non-modifiable?°dONLNdX#/O)iNon-modifiable°dONLNdg5rA≥(]ê pDefaultType°dONLNdtEúQ‘+* Description:°dONLNdÅEQ÷)i0The default descriptor type for the object class°dONLNd≤Uúa‰(}∫Object Class ID:°dONLNd√Ua )icType°dONLNd…eúqÕ(ç∫
  1936. Inherited?°dONLNd‘eqQ)iYes, from cObject°dONLNdÊuúÅ€(ù∫
  1937. Modifiable or°dONLNdıÅúçÎ* Non-modifiable?°dONLNdÅçO)iNon-modifiable+u;The Database Suite)t25ˇ¸◊#ˇ ˇˇˇˇ#◊ 
  1938. d, Palatino
  1939. .°dONLNdAZMu+xipLock°dONLNdQÑ]º+* Description:°dONLNdQÌ]fl)i9The lock status of the object in the current transaction.°dONLNdM]Ói¢+ ((The value must be one of the following:°dONLNdviÓu∂* )kExclusiveLock, kNoLock, or kSharedLock.)°dONLNd†yÑÖÃ(°¢Object Class ID:°dONLNd±yÌÖ4)i
  1940. enumLockTypes°dONLNdøâÑïµ(±¢
  1941. Inherited?°dONLNd âÌï˚)iNo°dONLNdÕôÑ•√(¡¢
  1942. Modifiable or°dONLNd‹•ѱ”* Non-modifiable?°dONLNdϕ̱!)i
  1943. Modifiable°dONLNd˜∑Z√|(flxpName°dONLNd˝«Ñ”º+* Description:°dONLNd
  1944. «Ì”I)iThe name of the cell°dONLNd◊Ñ„Ã(ˇ¢Object Class ID:°dONLNd0◊Ì„)icText°dONLNd6ÁÑÛµ(¢
  1945. Inherited?°dONLNdAÁÌÛ˚)iNo°dONLNdD˜Ñ√(¢
  1946. Modifiable or°dONLNdSÑ”* Non-modifiable?°dONLNdcÌ!)i
  1947. Modifiable°dONLNdn0'y(CNElement Classes°dONLNd~-Z9+*cSession°dONLNdá=ÑIº+* Description:°dONLNdî=ÌIã)i#Active sessions using this database°dONLNd∏MÑYµ(u¢
  1948. Inherited?°dONLNd√MÌY˚)iNo°dONLNdΔ]Ñi√(Ö¢
  1949. Modifiable or°dONLNd’iÑu”* Non-modifiable?°dONLNdÂiÌu!)i
  1950. Modifiable°dONLNdyÉÖ∂(°°
  1951. Key Forms:°dONLNd˚yÌÖ)jNone°dONLNdãZóx(≥xcTable°dONLNdõÑߺ+* Description:°dONLNdõÌßÖ)i!Represents tables in the database°dONLNd6´Ñ∑µ(”¢
  1952. Inherited?°dONLNdA´Ì∑˚)iNo°dONLNdDªÑ«√(„¢
  1953. Modifiable or°dONLNdS«Ñ””* Non-modifiable?°dONLNdc«Ì”7)iNon-modifiable°dONLNdr◊É„∂(ˇ°
  1954. Key Forms:°dONLNd}◊Ì„÷)j/formAbsolutePosition, formName, formPropertyID,°dONLNd≠„ÌÔ≥* )formRange, formRelativePosition, formTest(‰N26)$Apple Event Registryˇj◊#ˇ ˇˇˇˇ#◊ 
  1955. d, Palatino
  1956. .°dONLNdCHOÖ+fk Apple Events°dONLNd
  1957. CúO3)T!Apple events from the Core suite:°dONLNd/Sú_∂*Clone°dONLNd5S¸_a)`Inherited from cObject°dONLNdLcúo·(ã∫Count Elements°dONLNd[c¸oa)`Inherited from cObject°dONLNdrsú‚(õ∫Create Element°dONLNdÅs¸a)`Inherited from cObject°dONLNdòÉúèª(´∫Delete°dONLNdüɸèa)`Inherited from cObject°dONLNd∂ìúü‰(ª∫Do Objects Exist°dONLNd«ì¸üa)`Inherited from cObject°dONLNdfi£úØ€(À∫Get Class Info°dONLNdÌ£¸Øa)`Inherited from cObject°dONLNd≥úøΔ(€∫Get Data°dONLNd
  1958. ≥¸øa)`Inherited from cObject°dONLNd$√úœ‹(Î∫
  1959. Get Data Size°dONLNd2√¸œa)`Inherited from cObject°dONLNdI”úfl≈(˚∫Set Data°dONLNdR”¸fla)`Inherited from cObject°dONLNdiÎH˜c(fNotes°dONLNdoÎú˜∞)TThe °dONLNdsÎ∞˜Ô)Get Class Info°dONLNdÅÎÔ˜∑)?- Apple event should be sent to determine if a°dONLNdØ˘ú¬(!∫Cdatabase needs a session. If the database can contain a session but°dONLNdÛú¬*Cnone are present, then the client application must create a session°dONLNd7ú!«*    with the °dONLNd@«!
  1960. )+Create Element°dONLNdN
  1961. !µ)F% Apple event. If the database needs a°dONLNdt#ú/Ã(K∫Ddifferent session than its containing DBMS, then it should require a°dONLNdπ1ú=Δ*Dnew cSession object; otherwise one should not be listed in Get Class°dONLNd˛?úK–*IInfo. If the database cannot contain a session object, then no session is°dONLNdHMúY#*necessary to use the database.(‰òThe Database Suite)t27ˇ    ¬◊#ˇ ˇˇˇˇ#◊ 
  1962. d, Palatino
  1963. .°dONLNdJ0[Ä+Nv!DBMS—a database management system `L`ˇ
  1964. °dONLNd"g0sD*The °dONLNd&gDsf)cDBMS°dONLNd+gfs«)"P object class is the class for a particular brand of database management system.°dONLNd}0ã`(ßN
  1965. Superclass°dONLNdàÑã§)TcObject°dONLNdè§ã€) 
  1966.  (Core suite)°dONLNdˇˇ(€¢typeAEDescList°dONLNdùó0£T(øNDefault°dONLNd••0±`*
  1967. Descriptor°dONLNd±≥0øG*Type°dONLNd«À0◊_*
  1968. Properties°dONLNd”›ZÈã+*    pBestType°dONLNd›ÌÑ˘º+* Description:°dONLNdÍÌÌ˘∫)i-The descriptor type that can contain the most°dONLNd˘Ó≠+ -information from objects of this object class°dONLNdF    ÑÃ(1¢Object Class ID:°dONLNdW    Ì)icType°dONLNd]Ñ%µ(A¢
  1969. Inherited?°dONLNdhÌ%)i
  1970. Yes, from °dONLNdr%9),cObject°dONLNdz)Ñ5√(Q¢
  1971. Modifiable or°dONLNdâ5ÑA”* Non-modifiable?°dONLNdô5ÌA7)iNon-modifiable°dONLNd®GZSy(oxpClass°dONLNdØWÑcº+* Description:°dONLNdºWÌcΩ)i0The four-character class ID for the object class°dONLNdÌgÑsÃ(è¢Object Class ID:°dONLNd˛gÌs)icType°dONLNdwÑɵ(ü¢
  1972. Inherited?°dONLNdwÌÉ9)iYes, from cObject°dONLNd!áÑì√(Ø¢
  1973. Modifiable or°dONLNd0ìÑü”* Non-modifiable?°dONLNd@ìÌü7)iNon-modifiable°dONLNdO•Z±õ(Õx pDefaultType°dONLNd\µÑ¡º+* Description:°dONLNdiµÌ¡æ)i0The default descriptor type for the object class°dONLNdö≈Ñ—Ã(Ì¢Object Class ID:°dONLNd´≈Ì—)icType°dONLNd±’Ñ·µ(˝¢
  1974. Inherited?°dONLNdº’Ì·9)iYes, from cObject°dONLNdŒÂÑÒ√(
  1975. ¢
  1976. Modifiable or°dONLNd›ÒÑ˝”* Non-modifiable?°dONLNdÌÒÌ˝7)iNon-modifiable°dONLNd¸Z|(+xpName°dONLNdѺ+* Description:°dONLNdÌI)iThe name of the cell°dONLNd$#Ñ/Ã(K¢Object Class ID:°dONLNd5#Ì/)icText°dONLNd;3Ñ?µ([¢
  1977. Inherited?°dONLNdF3Ì?˚)iNo°dONLNdICÑO√(k¢
  1978. Modifiable or°dONLNdXOÑ[”* Non-modifiable?°dONLNdhOÌ[!)i
  1979. Modifiable(‰N28)$Apple Event Registryˇ ~◊#ˇ ˇˇˇˇ#◊ 
  1980. d, Palatino
  1981. .°dONLNdCHOë+fkElement Classes°dONLNdUra¢+*    cDatabase°dONLNdeúq‘+* Description:°dONLNd'eqr)iDatabases in the DBMS°dONLNd=uúÅÕ(ù∫
  1982. Inherited?°dONLNdHuÅ)iNo°dONLNdKÖúë€(≠∫
  1983. Modifiable or°dONLNdZëúùÎ* Non-modifiable?°dONLNdjëùO)iNon-modifiable°dONLNdy°õ≠Œ(…π
  1984. Key Forms:°dONLNdѰ≠Ó)j/formAbsolutePosition, formName, formPropertyID,°dONLNd¥≠πÀ* )formRange, formRelativePosition, formTest°dONLNdfiørÀó(ÁêcSession°dONLNdÁœú€‘+* Description:°dONLNdÙœ€ó)iActive sessions using this DBMS°dONLNdflúÎÕ(∫
  1985. Inherited?°dONLNdflÎ)iNo°dONLNd"Ôú˚€(∫
  1986. Modifiable or°dONLNd1˚úÎ* Non-modifiable?°dONLNdA˚9)i
  1987. Modifiable°dONLNdL õŒ(3π
  1988. Key Forms:°dONLNdW )jNone°dONLNd\#H/Ö(Kf Apple Events°dONLNdi#ú/3)T!Apple events from the Core suite:°dONLNdã3ú?·*Count Elements°dONLNdö3¸?a)`Inherited from cObject°dONLNd±CúO‰(k∫Do Objects Exist°dONLNd¬C¸Oa)`Inherited from cObject°dONLNdŸSú_€({∫Get Class Info°dONLNdËS¸_a)`Inherited from cObject°dONLNdˇcúoΔ(ã∫Get Data°dONLNdc¸oa)`Inherited from cObject°dONLNdsú‹(õ∫
  1989. Get Data Size°dONLNd-s¸a)`Inherited from cObject°dONLNdDÉúè≈(´∫Set Data°dONLNdMɸèa)`Inherited from cObject°dONLNddõHßc(√fNotes°dONLNdjõúßœ)TCSome DBMS brands do not require any specific connection and can use°dONLNdÆ©úµ¬*Bthe cSession information from their cHost object if desired. Other°dONLNdÒ∑ú√…*ADBMS brands may require the user to log in. Determine this with a°dONLNd3≈ú—÷*
  1990. Get Class Inf°dONLNd@≈÷—Z): o event on the cHost object. If °dONLNd`≈Z—)ÑcSession°dONLNdh≈—Δ)% is present, then°dONLNdz”úfl√(˚∫Bsend a Create Element event with a cSession object containing user°dONLNdΩ·úÌ‘*Cname information. Once a DBMS is selected, the databases accessible°dONLNdÔú˚A*#by that DBMS brand can be selected.°dONLNd%ú”*ESome servers may not require a DBMS brand to be selected. If a server°dONLNdkúÕ*Bcontains no DBMSs, the container for the database may be specified°dONLNdÆ!ú-€*as the host or °dONLNdΩ!€-¯)?NULL°dONLNd¡!¯-ƒ)1 if there are no hosts. If a server contains only°dONLNdÛ/ú;Ø(W∫9one DBMS brand, then that DBMS should be specified as the°dONLNd-=úI*container for any databases.+fiThe Database Suite)t29ˇ    ‚◊#ˇ ˇˇˇˇ#◊ 
  1991. d, Palatino
  1992. .°dONLNdJ0[Ö+Nv%Host—a network host containing a DBMS `L`∑°dONLNd&b0sê* or database
  1993. °dONLNd20ã≈*\The cHost object class is the class for a computer that runs one or more DBMS brands. If the°dONLNdèç0ôä*KDBMS is being accessed over a network, the server becomes the network host.°dONLNd‹•0±`*
  1994. Superclass°dONLNdÁ•ѱ€)TcObject (Core suite)°dONLNdˇˇ*4typeAEDescList°dONLNd¸Ω0…T(ÂNDefault°dONLNdÀ0◊`*
  1995. Descriptor°dONLNdŸ0ÂG*Type°dONLNd&Ò0˝_*
  1996. Properties°dONLNd2Zã+*    pBestType°dONLNd<Ѻ+* Description:°dONLNdIÌ∫)i-The descriptor type that can contain the most°dONLNdwÓ+≠+ -information from objects of this object class°dONLNd•/Ñ;Ã(W¢Object Class ID:°dONLNd∂/Ì;)icType°dONLNdº?ÑKµ(g¢
  1997. Inherited?°dONLNd«?ÌK9)iYes, from cObject°dONLNdŸOÑ[√(w¢
  1998. Modifiable or°dONLNdË[Ñg”* Non-modifiable?°dONLNd¯[Ìg7)iNon-modifiable°dONLNdmZyy(ïxpClass°dONLNd}Ñâº+* Description:°dONLNd}ÌâΩ)i0The four-character class ID for the object class°dONLNdLçÑôÃ(µ¢Object Class ID:°dONLNd]çÌô)icType°dONLNdcùÑ©µ(≈¢
  1999. Inherited?°dONLNdnùÌ©9)iYes, from cObject°dONLNdÄ≠Ñπ√(’¢
  2000. Modifiable or°dONLNdèπÑ≈”* Non-modifiable?°dONLNdüπÌ≈7)iNon-modifiable°dONLNdÆÀZ◊õ(Ûx pDefaultType°dONLNdª€ÑÁº+* Description:°dONLNd»€ÌÁæ)i0The default descriptor type for the object class°dONLNd˘ÎјÃ(¢Object Class ID:°dONLNd
  2001. Î̘)icType°dONLNd˚ѵ(#¢
  2002. Inherited?°dONLNd˚Ì9)iYes, from cObject°dONLNd- Ñ√(3¢
  2003. Modifiable or°dONLNd<Ñ#”* Non-modifiable?°dONLNdLÌ#7)iNon-modifiable°dONLNd[)Z5|(QxpName°dONLNda9ÑEº+* Description:°dONLNdn9ÌEL)iThe name of the host°dONLNdÉIÑUÃ(q¢Object Class ID:°dONLNdîIÌU)icText°dONLNdöYÑeµ(Å¢
  2004. Inherited?°dONLNd•YÌe˚)iNo°dONLNd®iÑu√(ë¢
  2005. Modifiable or°dONLNd∑uÑÅ”* Non-modifiable?°dONLNd«uÌÅ!)i
  2006. Modifiable(‰N30)$Apple Event Registryˇ
  2007. ‚◊#ˇ ˇˇˇˇ#◊ 
  2008. d, Palatino
  2009. .°dONLNdCHOë+fkElement Classes°dONLNdUra¢+*    cDatabase°dONLNdeúq‘+* Description:°dONLNd'eqk)iDatabases in this host°dONLNd>uúÅÕ(ù∫
  2010. Inherited?°dONLNdIuÅ)iNo°dONLNdLÖúë€(≠∫
  2011. Modifiable or°dONLNd[ëúùÎ* Non-modifiable?°dONLNdkëùO)iNon-modifiable°dONLNdz°ú≠œ(…∫
  2012. Key Forms:°dONLNdÖ°≠Ó)i/formAbsolutePosition, formName, formPropertyID,°dONLNdµ≠πÃ+ )formRange, formRelativePosition, formTest°dONLNdflørÀî(ÁêcDBMS°dONLNdœú€‘+* Description:°dONLNdÚœ€§)i DBMS brands handled by this host°dONLNdflúÎÕ(∫
  2013. Inherited?°dONLNdflÎ)iNo°dONLNd!Ôú˚€(∫
  2014. Modifiable or°dONLNd0˚úÎ* Non-modifiable?°dONLNd@˚O)iNon-modifiable°dONLNdO õŒ(3π
  2015. Key Forms:°dONLNdZ Ó)j/formAbsolutePosition, formName, formPropertyID,°dONLNdä#À* )formRange, formRelativePosition, formTest°dONLNd¥)r5ó(QêcSession°dONLNdΩ9úE‘+* Description:°dONLNd 9Eç)iActive sessions using this host°dONLNdÍIúUÕ(q∫
  2016. Inherited?°dONLNdıIU)iNo°dONLNd¯Yúe€(Å∫
  2017. Modifiable or°dONLNdeúqÎ* Non-modifiable?°dONLNdeq9)i
  2018. Modifiable°dONLNd"uõÅŒ(ùπ
  2019. Key Forms:°dONLNd-uÅ)jNone°dONLNd2çHôÖ(µf Apple Events°dONLNd?çúô3)T!Apple events from the Core suite:°dONLNdaùú©·*Count Elements°dONLNdpù¸©a)`Inherited from cObject°dONLNdá≠úπ‰(’∫Do Objects Exist°dONLNdò≠¸πa)`Inherited from cObject°dONLNdØΩú…€(Â∫Get Class Info°dONLNdæΩ¸…a)`Inherited from cObject°dONLNd’ÕúŸΔ(ı∫Get Data°dONLNdfiÕ¸Ÿa)`Inherited from cObject°dONLNdı›úÈ‹(∫
  2020. Get Data Size°dONLNd›¸Èa)`Inherited from cObject°dONLNdÌú˘≈(∫Set Data°dONLNd#̸˘a)`Inherited from cObject°dONLNd:Hc(-fNotes°dONLNd@úΔ)TBSome hosts do not require any specific connection. Other hosts may°dONLNdÉúæ*Brequire the user to log in. Determine this with the Get Class Info°dONLNdΔ!ú-‘*Hevent on the cHost object. If cSession is present, send a Create Element°dONLNd/ú;“*Eevent with a cSession object containing user name information. Once a°dONLNdU=úI¡*?host is selected, the DBMS brands or databases contained within°dONLNdïKúW*that host can be selected.+fiqThe Database Suite)t31ˇ⁄◊#ˇ ˇˇˇˇ#◊ 
  2021. d, Palatino
  2022. .°dONLNdCÑOº+¢kHSome servers may not require a host to be selected. If a server contains°dONLNdIQÑ]Æ*Ano hosts, the container for a DBMS may be specified as NULL. If a°dONLNdã_Ñk∞*Dserver contains only one host, then that host should be specified as°dONLNd–mÑy*the container for any DBMS.°dONLNdÏÉÑèª*ESome servers may not require a DBMS brand to be selected. If a server°dONLNd2ëÑù∑*Ccontains no DBMSs, the container for a database may be specified as°dONLNdvüÑ´3*'the host or NULL if there are no hosts.(‰N32)$Apple Event Registryˇ    ä◊#ˇ ˇˇˇˇ#◊ 
  2023. d, Palatino
  2024. .°dONLNdJH[+fvKey—an indexed column `d`
  2025. °dONLNdgHsfl*^The cKey object class is the class for a collection of indexed columns that can be searched or°dONLNduuHʼn*#sorted faster than regular columns.°dONLNdöçHôx*
  2026. Superclass°dONLNd•çúôÛ)TcObject (Core suite)°dONLNdˇˇ*4typeKey°dONLNd∫•H±l(ÕfDefault°dONLNd¬≥Høx*
  2027. Descriptor°dONLNdŒ¡HÕ_*Type°dONLNd›ŸHÂw*
  2028. Properties°dONLNdÈÎr˜£+*    pBestType°dONLNdÛ˚ú‘+* Description:°dONLNd˚“)i-The descriptor type that can contain the most°dONLNd.≈+ -information from objects of this object class°dONLNd\ú#‰(?∫Object Class ID:°dONLNdm# )icType°dONLNds'ú3Õ(O∫
  2029. Inherited?°dONLNd~'3Q)iYes, from cObject°dONLNdê7úC€(_∫
  2030. Modifiable or°dONLNdüCúOÎ* Non-modifiable?°dONLNdØCOO)iNon-modifiable°dONLNdæUraë(}êpClass°dONLNd≈eúq‘+* Description:°dONLNd“eq’)i0The four-character class ID for the object class°dONLNduúʼn(ù∫Object Class ID:°dONLNduÅ )icType°dONLNdÖúëÕ(≠∫
  2031. Inherited?°dONLNd%ÖëQ)iYes, from cObject°dONLNd7ïú°€(Ω∫
  2032. Modifiable or°dONLNdF°ú≠Î* Non-modifiable?°dONLNdV°≠O)iNon-modifiable°dONLNde≥rø≠(€ê pCurrentSort°dONLNdr√úœ‘+* Description:°dONLNd√œV)iSort type constant°dONLNdí”úfl‰(˚∫Object Class ID:°dONLNd£”flC)i
  2033. cShortInteger°dONLNd±„úÔÕ( ∫
  2034. Inherited?°dONLNdº„Ô)iNo°dONLNdøÛúˇ€(∫
  2035. Modifiable or°dONLNdŒˇú Î* Non-modifiable?°dONLNdfiˇ O)iNon-modifiable°dONLNdÌr≥(9ê pDefaultType°dONLNd˙!ú-‘+* Description:°dONLNd!-÷)i0The default descriptor type for the object class°dONLNd81ú=‰(Y∫Object Class ID:°dONLNdI1= )icType°dONLNdOAúMÕ(i∫
  2036. Inherited?°dONLNdZAMQ)iYes, from cObject°dONLNdlQú]€(y∫
  2037. Modifiable or°dONLNd{]úiÎ* Non-modifiable?°dONLNdã]iO)iNon-modifiable+u_The Database Suite)t33ˇ    ÷◊#ˇ ˇˇˇˇ#◊ 
  2038. d, Palatino
  2039. .°dONLNdAZM|+xipName°dONLNdQÑ]º+* Description:°dONLNdQÌ]I)iThe name of the key°dONLNd'aÑmÃ(â¢Object Class ID:°dONLNd8aÌm)icText°dONLNd>qÑ}µ(ô¢
  2040. Inherited?°dONLNdIqÌ}˚)iNo°dONLNdLÅÑç√(©¢
  2041. Modifiable or°dONLNd[çÑô”* Non-modifiable?°dONLNdkçÌô!)i
  2042. Modifiable°dONLNdvüZ´ô(«x pPrimaryKey°dONLNdÇØÑªº+* Description:°dONLNdèØÌªƒ)i0Indicates that this key is the primary key for a°dONLNd¿ªÓ«‹+ 5table. There are no requirements for a primary key to°dONLNdˆ«Ó”À* 1exist, but for any table only one primary key may°dONLNd(”ÓflŸ* 2exist. If pPrimaryKey is TRUE, then the key should°dONLNd[flÓε* )also be unique with pUniqueValue as TRUE.°dONLNdÖÔÑ˚Ã(¢Object Class ID:°dONLNdñÔÌ˚)icBoolean°dONLNdüˇÑ µ('¢
  2043. Inherited?°dONLNd™ˇÌ ˚)iNo°dONLNd≠Ñ√(7¢
  2044. Modifiable or°dONLNdºÑ'”* Non-modifiable?°dONLNdÃÌ'7)iNon-modifiable°dONLNd€-Z9ú(Ux pUniqueValue°dONLNdË=ÑIº+* Description:°dONLNdı=ÌI )i3Indicates if the key is guaranteed to be unique for°dONLNd)IÓUÕ+ 0every row in the table. If pUniqueValue is TRUE,°dONLNdZUÓa‹* 3then any attempt to create a new row with duplicate°dONLNdéaÓmπ* .values or to modify an existing row to contain°dONLNdΩmÓy‡* 6duplicate values will result in an errNotUnique error.°dONLNdÙ}ÑâÃ(•¢Object Class ID:°dONLNd}Ìâ)icBoolean°dONLNdçÑôµ(µ¢
  2045. Inherited?°dONLNdçÌô˚)iNo°dONLNdùÑ©√(≈¢
  2046. Modifiable or°dONLNd+©Ñµ”* Non-modifiable?°dONLNd;©Ìµ!)i
  2047. Modifiable°dONLNdF¡0Õy(ÈNElement Classes°dONLNdV›0ÈV*cColumn°dONLNd^ÌÑ˘º+T Description:°dONLNdkÌÌ˘C)iColumns in the key°dONLNd~˝Ñ    µ(%¢
  2048. Inherited?°dONLNdâ˝Ì    ˚)iNo°dONLNdå
  2049. Ñ√(5¢
  2050. Modifiable or°dONLNdõÑ%”* Non-modifiable?°dONLNd´Ì%!)i
  2051. Modifiable°dONLNd∂)É5∂(Q°
  2052. Key Forms:°dONLNd¡)Ì5÷)j/formAbsolutePosition, formName, formPropertyID,°dONLNdÒ5ÌA≥* )formRange, formRelativePosition, formTest(‰N34)$Apple Event Registryˇ    ¨◊#ˇ ˇˇˇˇ#◊ 
  2053. d, Palatino
  2054. .°dONLNdCHOÖ+fk Apple Events°dONLNd
  2055. CúO3)T!Apple events from the Core suite:°dONLNd/Sú_∂*Clone°dONLNd5S¸_a)`Inherited from cObject°dONLNdLcúo·(ã∫Count Elements°dONLNd[c¸oa)`Inherited from cObject°dONLNdrsú‚(õ∫Create Element°dONLNdÅs¸a)`Inherited from cObject°dONLNdòÉúèª(´∫Delete°dONLNdüɸèa)`Inherited from cObject°dONLNd∂ìúü‰(ª∫Do Objects Exist°dONLNd«ì¸üa)`Inherited from cObject°dONLNdfi£úØ€(À∫Get Class Info°dONLNdÌ£¸Øa)`Inherited from cObject°dONLNd≥úøΔ(€∫Get Data°dONLNd
  2056. ≥¸øa)`Inherited from cObject°dONLNd$√úœ‹(Î∫
  2057. Get Data Size°dONLNd2√¸œa)`Inherited from cObject°dONLNdI”úflµ(˚∫Move°dONLNdN”¸fla)`Inherited from cObject°dONLNde„úÔ≈( ∫Set Data°dONLNdn„¸Ôa)`Inherited from cObject°dONLNdÖ˚Hc(#fNotes°dONLNdã˚ú…)TCThe primary key for a table is a column or a combination of columns°dONLNdœ    ú±*<that uniquely identifies each row. The primary key is almost°dONLNd ú#Δ*Aalways indexed and is the preferred key for relational databases.°dONLNdN%ú1±*:There may be many different ways by which one can uniquely°dONLNdâ3ú?–*Cidentify a row, hence there may be many possible candidates for the°dONLNdÕAúM–*Bprimary key. However, only one key can be the primary key. If more°dONLNdOú[≈*Cthan one key satisfies the uniqueness requirement for a table, then°dONLNdT]úi…*Bthe server must make an arbitrary decision as to which key will be°dONLNdókúwÍ*the primary key.°dONLNd®Åúçº*?Databases that do not support key fields should simply return a°dONLNdËèúõ¬*Cvalue equivalent to zero for the number of keys in a table and fail°dONLNd,ùú©–*Dwhen asked to create keys. Since a key can contain multiple columns,°dONLNdq´ú∑≈*Athis is the way to specify concatenated keys. The column elements°dONLNd≥πú≈±*<should appear in their order of importance. The pCurrentSort°dONLNd«ú”¿*Aproperty should contain the same constant used in the Sort event.+fiıThe Database Suite)t35ˇ
  2058. Ù◊#ˇ ˇˇˇˇ#◊ 
  2059. d, Palatino
  2060. .°dONLNdJ0[4+NvRow—a row of cells from a table `L`ˇ
  2061. °dONLNd g0sD*The °dONLNd$gDs\)cRow°dONLNd(g\sE): object class is the class for a single record in a table.°dONLNdd0ã`(ßN
  2062. Superclass°dONLNdoÑã€)TcObject (Core suite)°dONLNdˇˇ*4typeRow°dONLNdÑó0£T(øNDefault°dONLNdå•0±`*
  2063. Descriptor°dONLNdò≥0øG*Type°dONLNdßÀ0◊_*
  2064. Properties°dONLNd≥›ZÈ}+*pAccess°dONLNdªÌÑ˘º+* Description:°dONLNd»ÌÌ˘√)i0Access privileges. (The value must be one of the°dONLNd˘˘Ó§+ (following or an additive combination of:°dONLNd"Ó0*
  2065. kCreateAccess°dONLNd/0w)B, kDeleteAccess°dONLNd>w∑)G
  2066. , kReadAccess°dONLNdK∑∫)@,°dONLNdMÓ4(9
  2067. kUpdateAccess°dONLNdZ4D)F, or °dONLNd_DÉ) kWriteAccess°dONLNdkÉä)?.)°dONLNdn!Ñ-Ã(I¢Object Class ID:°dONLNd!Ì-!)i
  2068. enumAccess°dONLNdä1Ñ=µ(Y¢
  2069. Inherited?°dONLNdï1Ì=˚)iNo°dONLNdòAÑM√(i¢
  2070. Modifiable or°dONLNdßMÑY”* Non-modifiable?°dONLNd∑MÌY7)iNon-modifiable°dONLNdΔ_Zkã(áx    pBestType°dONLNd–oÑ{º+* Description:°dONLNd›oÌ{∫)i-The descriptor type that can contain the most°dONLNd {Óá≠+ -information from objects of this object class°dONLNd9ãÑóÃ(≥¢Object Class ID:°dONLNdJãÌó)icType°dONLNdPõÑßµ(√¢
  2071. Inherited?°dONLNd[õÌß9)iYes, from cObject°dONLNdm´Ñ∑√(”¢
  2072. Modifiable or°dONLNd|∑Ñ√”* Non-modifiable?°dONLNdå∑Ì√7)iNon-modifiable°dONLNdõ…Z’y(ÒxpClass°dONLNd¢ŸÑº+* Description:°dONLNdØŸÌÂΩ)i0The four-character class ID for the object class°dONLNd‡ÈÑıÃ(¢Object Class ID:°dONLNdÒÈÌı)icType°dONLNd˜˘Ñµ(!¢
  2073. Inherited?°dONLNd˘Ì9)iYes, from cObject°dONLNd    Ñ√(1¢
  2074. Modifiable or°dONLNd#Ñ!”* Non-modifiable?°dONLNd3Ì!7)iNon-modifiable°dONLNdB'Z3õ(Ox pDefaultType°dONLNdO7ÑCº+* Description:°dONLNd\7ÌCæ)i0The default descriptor type for the object class°dONLNdçGÑSÃ(o¢Object Class ID:°dONLNdûGÌS)icType°dONLNd§WÑcµ(¢
  2075. Inherited?°dONLNdØWÌc9)iYes, from cObject°dONLNd¡gÑs√(è¢
  2076. Modifiable or°dONLNd–sÑ”* Non-modifiable?°dONLNd‡sÌ7)iNon-modifiable(‰N36)$Apple Event Registryˇ é◊#ˇ ˇˇˇˇ#◊ 
  2077. d, Palatino
  2078. .°dONLNdArMÑ+êipID°dONLNdQú]‘+* Description:°dONLNdQ]Ô)i4A unique ID for this row. Internally the ID property°dONLNdF]i‚+ 2can be of any desired type. The Object Class ID is°dONLNdyiu‹* 0listed as cText so that the ID can be handled by°dONLNd™uÅŸ* .scripting systems. Most of the common ID types°dONLNdŸÅçø* *should be easily coerced to and from text.°dONLNdëúù‰(π∫Object Class ID:°dONLNdëù)icText°dONLNd°ú≠Õ(…∫
  2079. Inherited?°dONLNd&°≠)iNo°dONLNd*±úΩ€(Ÿ∫
  2080. Modifiable or°dONLNd9Ωú…Î* Non-modifiable?°dONLNdIΩ…O)iNon-modifiable°dONLNdYœr€ç(˜êpLock°dONLNd_flúΑ+* Description:°dONLNdlflΘ)i9The lock status of the object in the current transaction.°dONLNd¶Î˜∫+ ((The value must be one of the following:°dONLNdœ˜Œ* )kExclusiveLock, kNoLock, or kSharedLock.)°dONLNd˘ú‰(/∫Object Class ID:°dONLNd
  2081. L)i
  2082. enumLockTypes°dONLNdú#Õ(?∫
  2083. Inherited?°dONLNd##)iNo°dONLNd&'ú3€(O∫
  2084. Modifiable or°dONLNd53ú?Î* Non-modifiable?°dONLNdE3?9)i
  2085. Modifiable°dONLNdPErQî(mêpName°dONLNdVUúa‘+* Description:°dONLNdcUaa)iThe name of the row°dONLNdweúq‰(ç∫Object Class ID:°dONLNdàeq)icText°dONLNdéuúÅÕ(ù∫
  2086. Inherited?°dONLNdôuÅ)iNo°dONLNdúÖúë€(≠∫
  2087. Modifiable or°dONLNd´ëúùÎ* Non-modifiable?°dONLNdªëù9)i
  2088. Modifiable°dONLNdΔ£rض(Àê pProtection°dONLNd“≤úæ‘+* Description:°dONLNdfl≤æ¯)i3Specifies whether the elements or pFormula property°dONLNdæ Ô+ 5of the cell can be changed. (The value must be one of°dONLNdI ÷Ó* .the following: kAEFormulaProtect, kAEReadOnly,°dONLNdx÷‚`* or kAEReadWrite.)°dONLNdäÂúÒ‰(
  2089. ∫Object Class ID:°dONLNdõÂÒJ)ienumProtection°dONLNd™ÙúÕ(∫
  2090. Inherited?°dONLNdµÙ)iNo°dONLNd∏ú€(+∫
  2091. Modifiable or°dONLNd«úÎ* Non-modifiable?°dONLNd◊9)i
  2092. Modifiable°dONLNd‚'H3ë(OfElement Classes°dONLNdÚ9rEä+*cCell°dONLNd¯HúT‘+* Description:°dONLNdHT[)iCells in the column°dONLNdWúcÕ(∫
  2093. Inherited?°dONLNd$Wc)iNo°dONLNd(fúr€(é∫
  2094. Modifiable or°dONLNd7rú~Î* Non-modifiable?°dONLNdGr~9)i
  2095. Modifiable°dONLNdRÅõçŒ(©π
  2096. Key Forms:°dONLNd]ÅçÓ)j/formAbsolutePosition, formName, formPropertyID,°dONLNdççôÀ* )formRange, formRelativePosition, formTest+u/The Database Suite)t37ˇ
  2097. ÷◊#ˇ ˇˇˇˇ#◊ 
  2098. d, Palatino
  2099. .°dONLNdAZMx+xicTable°dONLNdQÑ]º+* Description:°dONLNdQÌ]H)iName of the linkset°dONLNd(aÑmµ(â¢
  2100. Inherited?°dONLNd3aÌm˚)iNo°dONLNd6qÑ}√(ô¢
  2101. Modifiable or°dONLNdE}Ñâ”* Non-modifiable?°dONLNdU}Ìâ!)i
  2102. Modifiable°dONLNd`çÉô∂(µ°
  2103. Key Forms:°dONLNdkçÌô÷)j/formAbsolutePosition, formName, formPropertyID,°dONLNdõôÌ•≥* )formRange, formRelativePosition, formTest°dONLNd≈±0Ωm(ŸN Apple Events°dONLNd“±ÑΩ)T!Apple events from the Core suite:°dONLNdÙ¡ÑÕû*Clone°dONLNd˙¡‰ÕI)`Inherited from cObject°dONLNd—Ñ›…(˘¢Count Elements°dONLNd —‰›I)`Inherited from cObject°dONLNd7·ÑÌ (    ¢Create Element°dONLNdF·‰ÌI)`Inherited from cObject°dONLNd]ÒÑ˝£(¢Delete°dONLNddÒ‰˝I)`Inherited from cObject°dONLNd{Ñ
  2104. Ã()¢Do Objects Exist°dONLNdå‰
  2105. I)`Inherited from cObject°dONLNd£Ñ√(9¢Get Class Info°dONLNd≤‰I)`Inherited from cObject°dONLNd…!Ñ-Æ(I¢Get Data°dONLNd“!‰-I)`Inherited from cObject°dONLNdÈ1Ñ=ƒ(Y¢
  2106. Get Data Size°dONLNd˜1‰=I)`Inherited from cObject°dONLNdAÑMù(i¢Move°dONLNdA‰MI)`Inherited from cObject°dONLNd*QÑ]≠(y¢Set Data°dONLNd3Q‰]I)`Inherited from cObject°dONLNdJcÑo2(ã¢%Apple events from the Database suite:°dONLNdpsÑó*Sort°dONLNdus‰$)`
  2107. Not inherited°dONLNdÉã0óK(≥NNotes°dONLNdâãÑó≠)TCEach row of a table is structured identically, except that variable°dONLNdÕôÑ•¨*Arepeating columns can have a different repeat value for each row.°dONLNdßÑ≥s*5Rows may contain a table of other rows, representing °dONLNdDßs≥å)Ôchild°dONLNdIßå≥£) rows°dONLNdOµÑ¡∑(›¢ linked to a °dONLNd[µ∑¡◊)3parent °dONLNdbµ◊¡û) +row. However, the name of the cTable object°dONLNdé√Ñœ∑(΢Econtained in a cRow object is the same as the name of the linkset and°dONLNd‘—Ñ›?**not the name of the child row’s container.°dONLNdˇÁÑÛé*A °dONLNdÁéÛÆ)
  2108. linkset°dONLNdÁÆÛπ) > is an abstract concept that can be defined as a single parent°dONLNdGıѵ(¢Crow with zero or more related child rows. To understand the concept°dONLNdãÑ™*Bof linksets, consider the example of a customer-invoice relational°dONLNdŒÑ∑*Edatabase that consists of an invoices table and a customer table. The°dONLNdÑ+©*@customer table has a primary “customer account,” and the invoice°dONLNdU-Ñ9≤*Etable has a column that refers to the customer by his or her account.°dONLNdõ;ÑGê*<To relate an invoice and a customer, the database stores the°dONLNdÿIÑUû*?customer’s account number in the customer account column of the°dONLNdWÑc†*>invoice row. Whenever data is to be accessed, the database can°dONLNdWeÑq∂*Deasily locate the customer row by using the customer account number.°dONLNdúsѺ*EEach customer record will “own” a linkset, where the child records in(‰N38)$Apple Event Registryˇÿ◊#ˇ ˇˇˇˇ#◊ 
  2109. d, Palatino
  2110. .°dONLNdCúOº+∫kAeach linkset are those records that are related to the particular°dONLNdBQú]€*parent record.°dONLNdQgús≥*>In the case of a network database, records are related through°dONLNdêuúÅ«*Bexplicit operations that add or remove child records from a parent°dONLNd”ÉúèŒ*Frecord. These operations do not create or delete any records, instead,°dONLNdëúù¢*8they maintain the relationships between the records. The°dONLNdSüú´…*Dimplementation may be a linked list of child records. In the case of°dONLNdò≠úπ∏*>the customer-invoice database, each child record invoice has a°dONLNd◊ªú«æ*Breference to the next and previous child record in addition to the°dONLNd…ú’€*parent record.°dONLNd*flúÎ∑*=A relational database can map linksets by performing a search°dONLNdhÌú˘æ*Boperation to find all of the child rows. Note that in a relational°dONLNd´˚ú≤*=database the “linking” field is usually indexed. The customer°dONLNdÈ    ú≈*Eaccount field in the invoices table is indexed in order to allow fast°dONLNd/ú#Õ*Eretrieval of all invoices related to a particular customer. A network°dONLNdu%ú1¿*Bdatabase will simply map the existing sets to the linkset objects.°dONLNd∏;úGœ*BLinksets are easily mapped into the Database suite by allowing the°dONLNd˚IúU‘*Gparent row to contain a table object, which in turn contains each child°dONLNdCWúcŒ*Crow. The name of the table is taken from the linkset name, which in°dONLNdáeúq≈*Bturn is taken from the naming convention in a particular database.°dONLNd {úáƒ*@Some relational databases will not explicitly identify where the°dONLNd âúï°*9relationship exists. These databases have no linksets and°dONLNdEóú£ƒ*Arelationships are defined by the users of the database performing°dONLNdá•ú±æ*@explicit find operations, which can also be executed through the°dONLNd»≥úø*Apple event interface.(‰òThe Database Suite)t39ˇ ◊#ˇ ˇˇˇˇ#◊ 
  2111. d, Palatino
  2112. .°dONLNdJ0[x+Nv&RowSelection—a saved selection of rows `L`ˇ
  2113. °dONLNd'g0sD*The °dONLNd+gDsÜ)
  2114. cRowSelection°dONLNd8gÜsÕ)BN object class is the class that represents an arbitrary selection of rows in a°dONLNdáu0Åfl(ùNbDBMS. Since some selections may be difficult or time consuming to collect, this object is intended°dONLNdÍÉ0è˛*/as a way to save arbitrary collections of rows.°dONLNdõ0ß`*
  2115. Superclass°dONLNd%õÑߢ)TcTable°dONLNd+õ¢ß) (Database suite)°dONLNdˇˇ(˜¢typeRowSelection°dONLNd=≥0øT(€NDefault°dONLNdE¡0Õ`*
  2116. Descriptor°dONLNdQœ0€G*Type°dONLNdiÁ0Û_*
  2117. Properties°dONLNdu˘Z}+*pAccess°dONLNd}    Ñº+* Description:°dONLNdä    Ì√)i0Access privileges. (The value must be one of the°dONLNdªÓ!§+ (following or an additive combination of:°dONLNd‰!Ó-0*
  2118. kCreateAccess°dONLNdÒ!0-w)B, kDeleteAccess°dONLNd!w-∑)G
  2119. , kReadAccess°dONLNd
  2120. !∑-∫)@,°dONLNd-Ó94(U
  2121. kUpdateAccess°dONLNd-49D)F, or °dONLNd!-D9É) kWriteAccess°dONLNd--É9ä)?.)°dONLNd0=ÑIÃ(e¢Object Class ID:°dONLNdA=ÌI!)i
  2122. enumAccess°dONLNdLMÑYµ(u¢
  2123. Inherited?°dONLNdWMÌY˝)iYes°dONLNd[]Ñi√(Ö¢
  2124. Modifiable or°dONLNdjiÑu”* Non-modifiable?°dONLNdziÌu7)iNon-modifiable°dONLNdâ{Záã(£x    pBestType°dONLNdìãÑóº+* Description:°dONLNd†ãÌó∫)i-The descriptor type that can contain the most°dONLNdŒóÓ£≠+ -information from objects of this object class°dONLNd¸ßÑ≥Ã(œ¢Object Class ID:°dONLNd
  2125. ßÌ≥)icType°dONLNd∑Ñ√µ(fl¢
  2126. Inherited?°dONLNd∑Ì√9)iYes, from cObject°dONLNd0«Ñ”√(Ô¢
  2127. Modifiable or°dONLNd?”Ñfl”* Non-modifiable?°dONLNdO”Ìfl7)iNon-modifiable°dONLNd^ÂZÒy(
  2128. xpClass°dONLNdeıѺ+* Description:°dONLNdrıÌΩ)i0The four-character class ID for the object class°dONLNd£ÑÃ(-¢Object Class ID:°dONLNd¥Ì)icType°dONLNd∫Ñ!µ(=¢
  2129. Inherited?°dONLNd≈Ì!9)iYes, from cObject°dONLNd◊%Ñ1√(M¢
  2130. Modifiable or°dONLNdÊ1Ñ=”* Non-modifiable?°dONLNdˆ1Ì=7)iNon-modifiable°dONLNdCZOõ(kx pDefaultType°dONLNdRÑ^º+* Description:°dONLNdRÌ^æ)i0The default descriptor type for the object class°dONLNdPaÑmÃ(â¢Object Class ID:°dONLNdaaÌm)icType°dONLNdgpÑ|µ(ò¢
  2131. Inherited?°dONLNdrpÌ|9)iYes, from cObject°dONLNdÑÑã√(ߢ
  2132. Modifiable or°dONLNdìãÑó”* Non-modifiable?°dONLNd£ãÌó7)iNon-modifiable(‰N40)$Apple Event Registryˇ
  2133. é◊#ˇ ˇˇˇˇ#◊ 
  2134. d, Palatino
  2135. .°dONLNdArMè+êipKind°dONLNdQú]‘+* Description:°dONLNdQ]‰)i4Defines the property as a cursor, linkset, table, or°dONLNdH]i÷+ .view. (The value must be one of the following:°dONLNdwiu±* %kCursor, kLinkset, kTable, or kView.)°dONLNdùyúÖ‰(°∫Object Class ID:°dONLNdÆyÖQ)ienumTableTypes°dONLNdΩâúïÕ(±∫
  2136. Inherited?°dONLNd»âï)iYes°dONLNdÃôú•€(¡∫
  2137. Modifiable or°dONLNd€•ú±Î* Non-modifiable?°dONLNdΕ±O)iNon-modifiable°dONLNd˙∑r√ç(flêpLock°dONLNd«ú”‘+* Description:°dONLNd
  2138. «”˜)i9The lock status of the object in the current transaction.°dONLNdG”fl∫+ ((The value must be one of the following:°dONLNdpflÎŒ* )kExclusiveLock, kNoLock, or kSharedLock.)°dONLNdöÔú˚‰(∫Object Class ID:°dONLNd´Ô˚L)i
  2139. enumLockTypes°dONLNdπˇú Õ('∫
  2140. Inherited?°dONLNdƒˇ )iNo°dONLNd«ú€(7∫
  2141. Modifiable or°dONLNd÷ú'Î* Non-modifiable?°dONLNdÊ'9)i
  2142. Modifiable°dONLNdÒ-r9î(UêpName°dONLNd˜=úI‘+* Description:°dONLNd=Ih)iThe name of the table°dONLNdMúY‰(u∫Object Class ID:°dONLNd+MY)icText°dONLNd1]úiÕ(Ö∫
  2143. Inherited?°dONLNd<]i)iNo°dONLNd?múy€(ï∫
  2144. Modifiable or°dONLNdNyúÖÎ* Non-modifiable?°dONLNd^yÖ9)i
  2145. Modifiable°dONLNdiãró¶(≥ê pProtection°dONLNduõúß‘+* Description:°dONLNdÇõ߯)i3Specifies whether the elements or pFormula property°dONLNd∂ß≥Ô+ 5of the cell can be changed. (The value must be one of°dONLNdÏ≥øÓ* .the following: kAEFormulaProtect, kAEReadOnly,°dONLNdøÀ`* or kAEReadWrite.)°dONLNd-œú€‰(˜∫Object Class ID:°dONLNd>œ€J)ienumProtection°dONLNdMflúÎÕ(∫
  2146. Inherited?°dONLNdXflÎ)iYes°dONLNd\Ôú˚€(∫
  2147. Modifiable or°dONLNdk˚úÎ* Non-modifiable?°dONLNd{˚9)i
  2148. Modifiable°dONLNdÜ
  2149. rú(5êpRowIDs°dONLNdéú)‘+* Description:°dONLNdõ)—)i0A list of row IDs for the rows in this selection°dONLNdÃ-ú9‰(U∫Object Class ID:°dONLNd›-9))icAEList°dONLNdÂ=úIÕ(e∫
  2150. Inherited?°dONLNd=I)iNo°dONLNdÛMúY€(u∫
  2151. Modifiable or°dONLNdYúeÎ* Non-modifiable?°dONLNdYeO)iNon-modifiable+ucThe Database Suite)t41ˇ
  2152. ®◊#ˇ ˇˇˇˇ#◊ 
  2153. d, Palatino
  2154. .°dONLNdC0Oy+NkElement Classes°dONLNdUZaÄ+*cColumn°dONLNdeÑqº+* Description:°dONLNd%eÌqJ)iColumns in the table°dONLNd:uÑŵ(ù¢
  2155. Inherited?°dONLNdEuÌÅ˝)iYes°dONLNdIÖÑë√(≠¢
  2156. Modifiable or°dONLNdXëÑù”* Non-modifiable?°dONLNdhëÌù!)i
  2157. Modifiable°dONLNds°É≠∂(…°
  2158. Key Forms:°dONLNd~°Ì≠÷)j/formAbsolutePosition, formName, formPropertyID,°dONLNdÆ≠Ìπ≥* )formRange, formRelativePosition, formTest°dONLNdŸøZÀq(ÁxcKey°dONLNdfiœÑ€º+* Description:°dONLNdΜ̀ê)i$Key or indexed columns in this table°dONLNdflÑε(¢
  2159. Inherited?°dONLNdflÌν)iYes°dONLNdÔÑ˚√(¢
  2160. Modifiable or°dONLNd.˚Ñ”* Non-modifiable?°dONLNd>˚Ì!)i
  2161. Modifiable°dONLNdI É∂(3°
  2162. Key Forms:°dONLNdT Ì÷)j/formAbsolutePosition, formName, formPropertyID,°dONLNdÑÌ#≥* )formRange, formRelativePosition, formTest°dONLNdÆ)Z5r(QxcRow°dONLNd≥9ÑEº+* Description:°dONLNd¿9ÌE<)iRows in the table°dONLNd“IÑUµ(q¢
  2163. Inherited?°dONLNd›IÌU˝)iYes°dONLNd·YÑe√(Å¢
  2164. Modifiable or°dONLNdeÑq”* Non-modifiable?°dONLNdeÌq!)i
  2165. Modifiable°dONLNd uÉÅ∂(ù°
  2166. Key Forms:°dONLNduÌÅ÷)j/formAbsolutePosition, formName, formPropertyID,°dONLNdFÅÌç≥* )formRange, formRelativePosition, formTest°dONLNdpô0•m(¡N Apple Events°dONLNd}ôÑ•)T!Apple events from the Core suite:°dONLNdü©Ñµû*Clone°dONLNd•©‰µI)`Inherited from cObject°dONLNdºπÑ≈…(·¢Count Elements°dONLNdÀπ‰≈I)`Inherited from cObject°dONLNd‚…Ñ’ (Ò¢Create Element°dONLNdÒ…‰’I)`Inherited from cObject°dONLNdŸÑ£(¢Delete°dONLNdŸ‰ÂI)`Inherited from cObject°dONLNd&ÈÑıÃ(¢Do Objects Exist°dONLNd7ȉıI)`Inherited from cObject°dONLNdN˘Ñ√(!¢Get Class Info°dONLNd]˘‰I)`Inherited from cObject°dONLNdt    ÑÆ(1¢Get Data°dONLNd}    ‰I)`Inherited from cObject°dONLNdîÑ%ƒ(A¢
  2167. Get Data Size°dONLNd¢‰%I)`Inherited from cObject°dONLNdπ)Ñ5≠(Q¢Set Data°dONLNd¬)‰5I)`Inherited from cObject°dONLNdŸ;ÑG2(c¢%Apple events from the Database suite:°dONLNdˇKÑWó*Sort°dONLNdK‰W$)`
  2168. Not inherited(‰N42)$Apple Event Registryˇj◊#ˇ ˇˇˇˇ#◊ 
  2169. d, Palatino
  2170. .°dONLNdCHOc+fkNotes°dONLNdCúO√)TATo create a cRowSelection object, use a Create Element event with°dONLNdHQú]ã*/keyAEData parameter being typeRowSelection. The°dONLNdx_úk±*<typeRowSelection parameter contains an object specifier that°dONLNdµmúyÀ*Fresolves to a set of rows. Once created, a cRowSelection object can be°dONLNd¸{úá *Dused as a reference to the rows without the tests that were required°dONLNdAâúï9*%in the original object specification.°dONLNdgüú´…*GSelections consist of rows in the form of a table. The selection object°dONLNdØ≠úπ»*Fcan be a list of row IDs that are used to reference the actual rows in°dONLNdˆªú« *Htheir original locations. The selection object can also be used as if it°dONLNd?…ú’∂*=were a table. Although the actual implementation is up to the°dONLNd}◊ú„«*Dserver, a selection should be similar to a table made up of the rows°dONLNd¬ÂúÒ…*?named in the pRowIDs property when the elements are referenced.°dONLNdÛúˇ≥*@A selection should also be able to return a list of row IDs when°dONLNdEú
  2171. 1*asked for the pRowIDs property.(‰òThe Database Suite)t43ˇ .◊#ˇ ˇˇˇˇ#◊ 
  2172. d, Palatino
  2173. .°dONLNdJ0[±+Nv.Session—an active session connected to a host, `L`ˇ°dONLNd/b0s–*DBMS, or database
  2174. °dONLNdA0ã’*aThe cSession object class is the class that describes the user of the host, DBMS, or database. It°dONLNd£ç0ô⁄*`contains access information, such as the user name, account, and the password used to access the°dONLNdõ0ß¡*Xobject. It uses a value of type boolean (TRUE/FALSE) to determine whether the session is°dONLNd]©0µ√*Zconducted as an unauthenticated guest or through the user information. The session ID is a°dONLNd∏∑0√†*unique session identifier.°dONLNd”œ0€`*
  2175. Superclass°dONLNdfiœÑ€€)TcObject (Core suite)°dONLNdˇˇ*. typeSession°dONLNdÛÂ0ÒT(
  2176. NDefault°dONLNd˚Ò0˝`*
  2177. Descriptor°dONLNd˝0    G* Type°dONLNd0!_*
  2178. Properties°dONLNd&%Z1É+*pAccount°dONLNd/5ÑAº+* Description:°dONLNd<5ÌAh)iAn optional account number°dONLNdWEÑQÃ(m¢Object Class ID:°dONLNdhEÌQ)icText°dONLNdnUÑaµ(}¢
  2179. Inherited?°dONLNdyUÌa˚)iNo°dONLNd}eÑq√(ç¢
  2180. Modifiable or°dONLNdåqÑ}”* Non-modifiable?°dONLNdúqÌ}!)i
  2181. Modifiable°dONLNd®ÅZçã(©x    pBestType°dONLNd≤ëÑùº+* Description:°dONLNdøëÌù∫)i-The descriptor type that can contain the most°dONLNdÌùÓ©≠+ -information from objects of this object class°dONLNd≠ÑπÃ(’¢Object Class ID:°dONLNd,≠Ìπ)icType°dONLNd2ΩÑ…µ(¢
  2182. Inherited?°dONLNd=ΩÌ…9)iYes, from cObject°dONLNdOÕÑŸ√(ı¢
  2183. Modifiable or°dONLNd^ŸÑ”* Non-modifiable?°dONLNdnŸÌÂ7)iNon-modifiable°dONLNd}ÈZıy(xpClass°dONLNdÑ˘Ñº+* Description:°dONLNdë˘ÌΩ)i0The four-character class ID for the object class°dONLNd¬    ÑÃ(1¢Object Class ID:°dONLNd”    Ì)icType°dONLNdŸÑ%µ(A¢
  2184. Inherited?°dONLNd‰Ì%9)iYes, from cObject°dONLNdˆ)Ñ5√(Q¢
  2185. Modifiable or°dONLNd5ÑA”* Non-modifiable?°dONLNd5ÌA7)iNon-modifiable°dONLNd$EZQõ(mx pDefaultType°dONLNd1TÑ`º+* Description:°dONLNd>TÌ`æ)i0The default descriptor type for the object class°dONLNdocÑoÃ(ã¢Object Class ID:°dONLNdÄcÌo)icType°dONLNdÜrÑ~µ(ö¢
  2186. Inherited?°dONLNdërÌ~9)iYes, from cObject°dONLNd£ÅÑç√(©¢
  2187. Modifiable or°dONLNd≤çÑô”* Non-modifiable?°dONLNd¬çÌô7)iNon-modifiable(‰N44)$Apple Event Registryˇ
  2188. ä◊#ˇ ˇˇˇˇ#◊ 
  2189. d, Palatino
  2190. .°dONLNdArMë+êipGuest°dONLNdQú]‘+* Description:°dONLNdQ]˜)i6Whether the user name and account is used to log in or°dONLNdK]i„+ 2whether the user is signed in at the default guest°dONLNd~iu* level°dONLNdÑyúÖ‰(°∫Object Class ID:°dONLNdïyÖ.)icBoolean°dONLNdûâúïÕ(±∫
  2191. Inherited?°dONLNd©âï)iNo°dONLNd≠ôú•€(¡∫
  2192. Modifiable or°dONLNdº•ú±Î* Non-modifiable?°dONLNdÕ±9)i
  2193. Modifiable°dONLNdÿ∑r√Ñ(flêpID°dONLNd‹«ú”‘+* Description:°dONLNdÈ«””)i/A unique ID for this session. Internally the ID°dONLNd”flÙ+ 5property can be of any desired type. The Object Class°dONLNdOflÎÙ* 6ID is listed as cText so that the ID can be handled by°dONLNdÜΘŸ* .scripting systems. Most of the common ID types°dONLNdµ˜ø* *should be easily coerced to and from text.°dONLNd‡ú‰(/∫Object Class ID:°dONLNdÒ)icText°dONLNd˜ú#Õ(?∫
  2194. Inherited?°dONLNd#)iNo°dONLNd'ú3€(O∫
  2195. Modifiable or°dONLNd3ú?Î* Non-modifiable?°dONLNd%3?O)iNon-modifiable°dONLNd5ErQ≈(mêpOpenTransaction°dONLNdFUúa‘+* Description:°dONLNdSUaz)iCurrent transaction(s) list°dONLNdoeúq‰(ç∫Object Class ID:°dONLNdÄeq>)i cLongInteger°dONLNdçuúÅÕ(ù∫
  2196. Inherited?°dONLNdòuÅ)iNo°dONLNdúÖúë€(≠∫
  2197. Modifiable or°dONLNd´ëúùÎ* Non-modifiable?°dONLNdªëùO)iNon-modifiable°dONLNdÀ£rØ£(Àê    pPassword°dONLNd’≥úø‘+* Description:°dONLNd‚≥øÏ)i2The password supplied to authenticate this session°dONLNd√úœ‰(Î∫Object Class ID:°dONLNd&√œ)icText°dONLNd,”úflÕ(˚∫
  2198. Inherited?°dONLNd7”fl)iNo°dONLNd;„úÔ€( ∫
  2199. Modifiable or°dONLNdJÔú˚Î* Non-modifiable?°dONLNdZÔ˚9)i
  2200. Modifiable°dONLNdfr
  2201. ç()êpUser°dONLNdlú‘+* Description:°dONLNdy¶)i#The user name used to access the DB°dONLNdù!ú-‰(I∫Object Class ID:°dONLNdÆ!-)icText°dONLNd¥1ú=Õ(Y∫
  2202. Inherited?°dONLNdø1=)iNo°dONLNd√AúM€(i∫
  2203. Modifiable or°dONLNd“MúYÎ* Non-modifiable?°dONLNd‚MYO)iNon-modifiable°dONLNdÚeHqë(çfElement Classes°dONLNdeúq¥)TNone+fiWThe Database Suite)t45ˇ ‘◊#ˇ ˇˇˇˇ#◊ 
  2204. d, Palatino
  2205. .°dONLNdC0Om+Nk Apple Events°dONLNd
  2206. CÑO)T!Apple events from the Core suite:°dONLNd/SÑ_…*Count Elements°dONLNd>S‰_I)`Inherited from cObject°dONLNdUcÑo (ã¢Create Element°dONLNddc‰oI)`Inherited from cObject°dONLNd{sÑ£(õ¢Delete°dONLNdÇs‰I)`Inherited from cObject°dONLNdôÉÑèÃ(´¢Do Objects Exist°dONLNd™É‰èI)`Inherited from cObject°dONLNd¡ìÑü√(ª¢Get Class Info°dONLNd–ì‰üI)`Inherited from cObject°dONLNdÁ£ÑØÆ(À¢Get Data°dONLNd£‰ØI)`Inherited from cObject°dONLNd≥Ñøƒ(€¢
  2207. Get Data Size°dONLNd≥‰øI)`Inherited from cObject°dONLNd,√Ñœ≠(΢Set Data°dONLNd5√‰œI)`Inherited from cObject°dONLNdL’Ñ·2(˝¢%Apple events from the Database suite:°dONLNdrÂÑÒ’*Begin Transaction°dONLNdщÒ$)`
  2208. Not inherited°dONLNdí˝0    K(%NNotes°dONLNdò˝Ñ    ∞)TDOne way to reference a session is to use the Begin Transaction event°dONLNd› Ѩ*Bwith a session specifier. A session’s pOpenTransaction property is°dONLNd Ñ%Ü*<undefined until the session object is specified in the Begin°dONLNd]'Ñ3õ*>Transaction event. The transaction ID is returned by the Begin°dONLNdú5ÑAµ*FTransaction event. Since sessions are used for authentication, it does°dONLNd„CÑO¢*Bnot make sense for a server to allow read access to its data. This°dONLNd&QÑ]≥*Emeans that any request for session properties should return an error.°dONLNdl_Ñkº*EThe server may allow writing to the properties if session information°dONLNd≤mÑy±*Acan be changed; otherwise, they should only be specified when the°dONLNdÙ{Ñá‘*session is created.°dONLNd    ëÑù∫*DEvery event in a transaction can be authenticated easily without the°dONLNdNüÑ´¥*Doverhead of a specific session reference. However, there are certain°dONLNdì≠Ñπº*Jsituations that require a session for a specific event that is not part of°dONLNdfiªÑ«¢*Aa transaction. These situations require a session parameter to be°dONLNd …Ñ’}*6added to an arbitrary event. This parameter should be:°dONLNdWflÑ΃* keyAESession°dONLNddÔÖ˚Ω+ Description:°dONLNdqÔˆ˚ü)q&A session reference for authentication°dONLNdòˇÖ —('£Descriptor Type:°dONLNd©ˇˆ Q)qtypeObjectSpecifier°dONLNdΩÖÍ(7£Required or Optional?°dONLNd”ˆ )qOptional°dONLNd‹%Ñ1µ(M¢EIf you want these events to be parsed by a scripting system, you must°dONLNd"3Ñ?≤*Aadd this parameter to the application for each event on which you°dONLNddAÑM£*Cuse it. This may require you to replicate the entire Core suite, or°dONLNd®OÑ[°*?whatever parts of it you add this parameter to, in your private°dONLNdË]Ñiô*=application; this is why the transaction method is preferred.(‰N46)$Apple Event Registryˇ ¬◊#ˇ ˇˇˇˇ#◊ 
  2209. d, Palatino
  2210. .°dONLNdCúOº+∫kASessions are opened upon creation of the cSession object with the°dONLNdBQú]–*CCreate Element event. The initial values are provided in the Create°dONLNdÜ_úk”*EElement event’s typeSession record, but they may be rejected based on°dONLNdÃmúyÕ*Gthe server’s verification process. If the values are rejected, then the°dONLNd{úá *Esession is not created, and the Create Element event returns an error°dONLNdZâúïÕ*Athrough the keyErrorString parameter. If the Create Element event°dONLNdúóú£Ã*Fsucceeds, then the returned object specifier can be saved and used for°dONLNd„•ú±**"future references to this session.°dONLNdªú«”*FSome objects may not require a session element. Use the Get Class Info°dONLNdM…ú’ø*Devent or an object that has a cSession element to see if it actually°dONLNdí◊ú„–*Hrequires one. If it does, you must create the session object with Create°dONLNd€ÂúÒÕ*GElement before using the object. All of the properties of a session are°dONLNd#Ûúˇæ*Aoptional, depending on the server’s needs. A Get Class Info event°dONLNdeú
  2211. œ*Cshould always be sent to determine what information is necessary to°dONLNd©ú≈*Dvalidate a session. Sessions may vary from object to object; a cHost°dONLNdÓú)~*2session may be different than a cDatabase session.°dONLNd"3ú?≈*DIf a session parameter is expected on any event but not present, the°dONLNdgAúMœ*Eserver should attempt to treat the request as a Guest access with the°dONLNd≠Oú[Ã*Ecorresponding public privileges if available. Guest sessions can also°dONLNdÛ]úi¨*=be requested explicitly by creating a session with the pGuest°dONLNd1kúwä*4property initialized to TRUE. The server must return°dONLNdfyúÖƒ*=errAEPrivilegeError in the reply keyword keyErrorNumber and a°dONLNd§áúìπ*?message in the keyErrorString keyword if Guest sessions are not°dONLNd‰ïú°Å*4allowed or if any specified session data is invalid.°dONLNd´ú∑Œ*DThe session ID property is documented as text since any ID should be°dONLNd^πú≈ *Erepresentable as text. A server can use any data type for the session°dONLNd§«ú”–*HID since the server is typically the only one referencing it. All client°dONLNdÌ’ú·æ*Capplications should use the object reference to the session that is°dONLNd1„úÔ—*Freturned by Create Element to refer to the session. Although this is a°dONLNdxÒú˝œ*Isimple object specifier referring to the session by ID, it is opaque to a°dONLNd¬ˇú Œ*Fclient application. A client application only sees an arbitrary object°dONLNd    
  2212. ú«*
  2213. specifier.+fiØThe Database Suite)t47ˇ 4◊#ˇ ˇˇˇˇ#◊ 
  2214. d, Palatino
  2215. .°dONLNdJ0[Ü+Nv)Table—a table of rows, columns, and cells `L`Õ°dONLNd*b0s¥*from a database
  2216. °dONLNd:0ã∑*\The cTable object class is the class for tables. A table is a collection of rows and columns°dONLNdòç0ôp*in a database.°dONLNdß•0±`*
  2217. Superclass°dONLNd≤•ѱ€)TcObject (Core suite)°dONLNdˇˇ*.    typeTable°dONLNd«ª0«T(„NDefault°dONLNdœ«0”`*
  2218. Descriptor°dONLNd€”0flG* Type°dONLNdÏÎ0˜_*
  2219. Properties°dONLNd¯˝Z    }+*pAccess°dONLNd
  2220. Ѻ+* Description:°dONLNd
  2221. 
  2222. Ì√)i0Access privileges. (The value must be one of the°dONLNd>Ó%§+ (following or an additive combination of:°dONLNdg%Ó10*
  2223. kCreateAccess°dONLNdt%01w)B, kDeleteAccess°dONLNdÉ%w1∑)G
  2224. , kReadAccess°dONLNdê%∑1∫)@,°dONLNdí1Ó=4(Y
  2225. kUpdateAccess°dONLNdü14=D)F, or °dONLNd§1D=É) kWriteAccess°dONLNd∞1É=ä)?.)°dONLNd≥AÑMÃ(i¢Object Class ID:°dONLNdƒAÌM!)i
  2226. enumAccess°dONLNdœQÑ]µ(y¢
  2227. Inherited?°dONLNd⁄QÌ]˚)iNo°dONLNd›aÑm√(â¢
  2228. Modifiable or°dONLNdÏmÑy”* Non-modifiable?°dONLNd¸mÌy7)iNon-modifiable°dONLNd Zãã(ßx    pBestType°dONLNdèÑõº+* Description:°dONLNd"èÌõ∫)i-The descriptor type that can contain the most°dONLNdPõÓß≠+ -information from objects of this object class°dONLNd~´Ñ∑Ã(”¢Object Class ID:°dONLNdè´Ì∑)icType°dONLNdïªÑ«µ(„¢
  2229. Inherited?°dONLNd†ªÌ«9)iYes, from cObject°dONLNd≤ÀÑ◊√(Û¢
  2230. Modifiable or°dONLNd¡◊Ñ„”* Non-modifiable?°dONLNd—◊Ì„7)iNon-modifiable°dONLNd‡ÈZıy(xpClass°dONLNdÁ¯Ñº+* Description:°dONLNdÙ¯ÌΩ)i0The four-character class ID for the object class°dONLNd%ÑÃ(/¢Object Class ID:°dONLNd6Ì)icType°dONLNd<Ñ"µ(>¢
  2231. Inherited?°dONLNdGÌ"9)iYes, from cObject°dONLNdY%Ñ1√(M¢
  2232. Modifiable or°dONLNdh1Ñ=”* Non-modifiable?°dONLNdx1Ì=7)iNon-modifiable°dONLNdáCZOõ(kx pDefaultType°dONLNdîRÑ^º+* Description:°dONLNd°RÌ^æ)i0The default descriptor type for the object class°dONLNd“aÑmÃ(â¢Object Class ID:°dONLNd„aÌm)icType°dONLNdÈpÑ|µ(ò¢
  2233. Inherited?°dONLNdÙpÌ|9)iYes, from cObject°dONLNdÑã√(ߢ
  2234. Modifiable or°dONLNdãÑó”* Non-modifiable?°dONLNd%ãÌó7)iNon-modifiable(‰N48)$Apple Event Registryˇ
  2235. ˛◊#ˇ ˇˇˇˇ#◊ 
  2236. d, Palatino
  2237. .°dONLNdArMè+êipKind°dONLNdQú]‘+* Description:°dONLNdQ]‰)i4Defines the property as a cursor, linkset, table, or°dONLNdH]i÷+ .view. (The value must be one of the following:°dONLNdwiu±* %kCursor, kLinkset, kTable, or kView.)°dONLNdùyúÖ‰(°∫Object Class ID:°dONLNdÆyÖQ)ienumTableTypes°dONLNdΩâúïÕ(±∫
  2238. Inherited?°dONLNd»âï)iNo°dONLNdÀôú•€(¡∫
  2239. Modifiable or°dONLNd⁄•ú±Î* Non-modifiable?°dONLNdÍ•±O)iNon-modifiable°dONLNd˘∑r√ç(flêpLock°dONLNdˇ«ú”‘+* Description:°dONLNd «”˜)i9The lock status of the object in the current transaction.°dONLNdF”fl∫+ ((The value must be one of the following:°dONLNdoflÎŒ* )kExclusiveLock, kNoLock, or kSharedLock.)°dONLNdôÔú˚‰(∫Object Class ID:°dONLNd™Ô˚L)i
  2240. enumLockTypes°dONLNd∏ˇú Õ('∫
  2241. Inherited?°dONLNd√ˇ )iNo°dONLNdΔú€(7∫
  2242. Modifiable or°dONLNd’ú'Î* Non-modifiable?°dONLNdÂ'9)i
  2243. Modifiable°dONLNd-r9î(UêpName°dONLNdˆ=úI‘+* Description:°dONLNd=Ih)iThe name of the table°dONLNdMúY‰(u∫Object Class ID:°dONLNd*MY)icText°dONLNd0]úiÕ(Ö∫
  2244. Inherited?°dONLNd;]i)iNo°dONLNd>múy€(ï∫
  2245. Modifiable or°dONLNdMyúÖÎ* Non-modifiable?°dONLNd]yÖ9)i
  2246. Modifiable°dONLNdhãró¶(≥ê pProtection°dONLNdtõúß‘+* Description:°dONLNdÅõ߯)i3Specifies whether the elements or pFormula property°dONLNdµß≥Ô+ 5of the cell can be changed. (The value must be one of°dONLNdÎ≥øÓ* .the following: kAEFormulaProtect, kAEReadOnly,°dONLNdøÀ`* or kAEReadWrite.)°dONLNd,œú€‰(˜∫Object Class ID:°dONLNd=œ€J)ienumProtection°dONLNdLflúÎÕ(∫
  2247. Inherited?°dONLNdWflÎ)iNo°dONLNdZÔú˚€(∫
  2248. Modifiable or°dONLNdi˚úÎ* Non-modifiable?°dONLNdy˚9)i
  2249. Modifiable°dONLNdÑHë(;fElement Classes°dONLNdî%r1ä+*cCell°dONLNdö5úA‘+* Description:°dONLNdß5AT)iCells in the table°dONLNd∫EúQÕ(m∫
  2250. Inherited?°dONLNd≈EQ)iNo°dONLNd»Uúa€(}∫
  2251. Modifiable or°dONLNd◊aúmÎ* Non-modifiable?°dONLNdÁam9)i
  2252. Modifiable°dONLNdÚqõ}Œ(ôπ
  2253. Key Forms:°dONLNd˝q}Ó)j/formAbsolutePosition, formName, formPropertyID,°dONLNd-}âÀ* )formRange, formRelativePosition, formTest+u?The Database Suite)t49ˇ
  2254. ¬◊#ˇ ˇˇˇˇ#◊ 
  2255. d, Palatino
  2256. .°dONLNdAZMÄ+xicColumn°dONLNdQÑ]º+* Description:°dONLNdQÌ]J)iColumns in the table°dONLNd*aÑmµ(â¢
  2257. Inherited?°dONLNd5aÌm˚)iNo°dONLNd8qÑ}√(ô¢
  2258. Modifiable or°dONLNdG}Ñâ”* Non-modifiable?°dONLNdW}Ìâ!)i
  2259. Modifiable°dONLNdbçÉô∂(µ°
  2260. Key Forms:°dONLNdmçÌô÷)j/formAbsolutePosition, formName, formPropertyID,°dONLNdùôÌ•≥* )formRange, formRelativePosition, formTest°dONLNd»´Z∑q(”xcKey°dONLNdժѫº+* Description:°dONLNd⁄ªÌ«ê)i$Key or indexed columns in this table°dONLNdˇÀÑ◊µ(Û¢
  2261. Inherited?°dONLNd
  2262. ÀÌ◊˚)iNo°dONLNd
  2263. €ÑÁ√(¢
  2264. Modifiable or°dONLNdÁÑÛ”* Non-modifiable?°dONLNd,ÁÌÛ!)i
  2265. Modifiable°dONLNd7˜É∂(°
  2266. Key Forms:°dONLNdB˜Ì÷)j/formAbsolutePosition, formName, formPropertyID,°dONLNdrÌ≥* )formRange, formRelativePosition, formTest°dONLNdùZ!r(=xcRow°dONLNd¢%Ñ1º+* Description:°dONLNdØ%Ì1<)iRows in the table°dONLNd¡5ÑAµ(]¢
  2267. Inherited?°dONLNdÃ5ÌA˚)iNo°dONLNdœEÑQ√(m¢
  2268. Modifiable or°dONLNdfiQÑ]”* Non-modifiable?°dONLNdÓQÌ]!)i
  2269. Modifiable°dONLNd˘aÉm∂(â°
  2270. Key Forms:°dONLNdaÌm÷)j/formAbsolutePosition, formName, formPropertyID,°dONLNd4mÌy≥* )formRange, formRelativePosition, formTest°dONLNd_Ö0ëm(≠N Apple Events°dONLNdlÖÑë)T!Apple events from the Core suite:°dONLNdéïѰû*Clone°dONLNdîI)`Inherited from cObject°dONLNd´•ѱ…(Õ¢Count Elements°dONLNd∫•‰±I)`Inherited from cObject°dONLNd—µÑ¡ (›¢Create Element°dONLNd‡µ‰¡I)`Inherited from cObject°dONLNd˜≈Ñ—£(Ì¢Delete°dONLNd˛≈‰—I)`Inherited from cObject°dONLNd’Ñ·Ã(˝¢Do Objects Exist°dONLNd&’‰·I)`Inherited from cObject°dONLNd=ÂÑÒ√(
  2271. ¢Get Class Info°dONLNdL‰ÒI)`Inherited from cObject°dONLNdcıÑÆ(¢Get Data°dONLNdlı‰I)`Inherited from cObject°dONLNdÉу(-¢
  2272. Get Data Size°dONLNdë‰I)`Inherited from cObject°dONLNd®Ñ!ù(=¢Move°dONLNd≠‰!I)`Inherited from cObject°dONLNdƒ%Ñ1≠(M¢Set Data°dONLNdÕ%‰1I)`Inherited from cObject°dONLNd‰7ÑC2(_¢%Apple events from the Database suite:°dONLNd
  2273. GÑSó*Sort°dONLNdG‰S$)`
  2274. Not inherited(‰N50)$Apple Event Registryˇ◊#ˇ ˇˇˇˇ#◊ 
  2275. d, Palatino
  2276. .°dONLNdJH[«+fv.Descriptor types defined in the Database suite `d`
  2277. °dONLNd/oH{∂*!QThe descriptor types defined in the Database suite are described in the following°dONLNdÅ}Hâ*/sections. Table 3 lists these descriptor types.,
  2278.  
  2279. Zapf Dingbats
  2280. °dONLNd±™H±N**n
  2281. °dONLNd≥®X¥y+Table 3°dONLNdª®í¥e):.Descriptor types defined in the Database suite
  2282.     °dONLNdÍ¿HÀê(ÁfDescriptor type°dONLNd˙¿≈À˚)} Description ‹d‹ ÏdÏ
  2283. °dONLNd÷H‚q(˛ftypeCell°dONLNd÷≈‚˚)}
  2284. A cell object°dONLNdÊHÚ(f
  2285. typeColumn°dONLNd(Ê≈Ú    )}A column object°dONLNd8ˆHp(ftypeKey°dONLNd@ˆ≈)}A key fields object°dONLNdTHq(.ftypeRow°dONLNd\≈˚)} A row object°dONLNdiH"õ(>ftypeRowSelection°dONLNdz≈"%)}A row selection object°dONLNdë&H2~(Nf typeSession°dONLNdù&≈2    )}A session object°dONLNdÆ6HBw(^f    typeTable°dONLNd∏6≈B)}A table object(‰òThe Database Suite)t51ˇfi◊#ˇ ˇˇˇˇ#◊ 
  2286. d, Palatino
  2287. .°dONLNdJ0[È+NvtypeCell—a cell object `L`ˇ
  2288. °dONLNdo0{:*!A °dONLNdo:{e)
  2289.     typeCell °dONLNd"oe{ã)+Edescriptor record contains data to create or retrieve a cCell object.°dONLNdhá0ìe(ØN Description°dONLNdtáÑìß)TATo create a typeCell descriptor record, you coerce an Apple event°dONLNd∂ïѰ≤*Crecord containing the following fields into the equivalent typeCell°dONLNd˙£ÑØ”*descriptor record.
  2290.     °dONLNd
  2291. ªÑΔ¨*Keyword°dONLNdªÎΔ3)gDescriptor type°dONLNd%ªHΔ~)] Description ◊†◊ˇ Á†Áˇ
  2292. °dONLNd1—Ñ›ª(˘¢    keyAEData°dONLNd;—Λ )g
  2293. typeAEList°dONLNdF—H›÷)]!A list of values in the cell with°dONLNdhflHÎ≥*the format described by°dONLNdÄÌH˘¢*keyAEDefaultType°dONLNdë˝Ñ    fi(%¢keyAEDefaultType°dONLNd¢˝Î    )gtypeType°dONLNd´˝H    ≠)]The default data type°dONLNd¡
  2294. Ñ…(5¢ keyAEFormula°dONLNdŒ
  2295. Î)gtypeChar°dONLNd◊
  2296. Hö)]The cell’s formula°dONLNdÍÑ)ø(E¢    keyAEName°dONLNdÙÎ))gtypeChar°dONLNd˝H)§)]The name of the cell°dONLNd-Ñ9—(U¢keyAEProtection°dONLNd"-Î99)gtypeEnumeration°dONLNd2-H9∑)]The formula’s protection°dONLNdK=ÑIÿ(e¢keyAERepeatSize°dONLNd[=ÎI5)gtypeLongInteger°dONLNdk=HI≤)]The number of values in°dONLNdÉKHWë*keyAEData list°dONLNdíaÑm§(â¢<Note that the Apple Event Manager can coerce any Apple event°dONLNdœoÑ{∞*Drecord into any other descriptor type. A special coercion handler is°dONLNd}ÑâΩ*
  2297. not required.°dONLNd#ï0°^(ΩN    Data Size°dONLNd-ïѰÆ)TVariable(‰N52)$Apple Event Registryˇ
  2298. ◊#ˇ ˇˇˇˇ#◊ 
  2299. d, Palatino
  2300. .°dONLNdJH[A+fvtypeColumn—a column object `d`
  2301. °dONLNdoH{≠*!OA typeColumn descriptor record contains the data needed to create or retrieve a°dONLNdk}Hâå*cColumn object.°dONLNd{ïH°}* Description°dONLNdáïú°Õ)TCTo create a typeColumn descriptor record, you coerce an Apple event°dONLNdÀ£úØü*:record containing the following fields into the equivalent°dONLNd±úΩ$*typeColumn descriptor record.
  2302.     °dONLNd$…ú‘ƒ*Keyword°dONLNd,…‘K)gDescriptor type°dONLNd=…q‘ß)n Description Â∏ ı∏ı
  2303. °dONLNdIflùΟ(ª keyAEAccess°dONLNdUflÎQ)ftypeEnumeration°dONLNdeflqÎø)nAccess privileges°dONLNdwÔù˚‚(ª
  2304. keyAECellList°dONLNdÖÔ˚8)f
  2305. typeAEList°dONLNdêÔq˚)nThe column values and formulas°dONLNdØ˝q    ˇ*!as a list of typeCell descriptors°dONLNd—
  2306. ù‚(5ª keyAEFormula°dONLNdfi
  2307. 0)ftypeChar°dONLNdÁ
  2308. qÎ)nThe formula for the column°dONLNdù)ÿ(Eª    keyAEName°dONLNd )0)ftypeChar°dONLNdq)–)nThe name of this row°dONLNd*-ù9Ê(Uª keyAENullsOK°dONLNd7-9=)f typeBoolean°dONLNdC-q9Ú)nIndicates whether Nulls are°dONLNd_;qGó*allowed°dONLNdgKùWÍ(sªkeyAEProtection°dONLNdwKWQ)ftypeEnumeration°dONLNdáKqW⁄)nThe formula privileges°dONLNdû[ùgÎ(ɪkeyAERepeating°dONLNd≠[gQ)ftypeEnumeration°dONLNdΩ[qg)n#Indicates whether it is a repeating°dONLNd·iquÎ*column. (kAEFixedRepeat,°dONLNd˙wqÉ“*kAESingleValued, or°dONLNdÖqë◊*kAEVariableRepeat.)°dONLNd"ïù°Ò(ΩªkeyAERepeatSize°dONLNd2ï°M)ftypeLongInteger°dONLNdBïq°Ê)nNumber of times to repeat°dONLNd\•ù±¯(ÕªkeyAEUniqueValue°dONLNdm•±=)f typeBoolean°dONLNdy•q±)n Indicates whether values in this°dONLNdö≥qø‡*column have to be unique°dONLNd≥…ú’º(Ò∫<Note that the Apple Event Manager can coerce any Apple event°dONLNd◊ú„»*Drecord into any other descriptor type. A special coercion handler is°dONLNd6ÂúÒ’*
  2309. not required.°dONLNdD˝H    v(%f    Data Size°dONLNdN˝ú    Δ)TVariable+fiøThe Database Suite)t53ˇ$◊#ˇ ˇˇˇˇ#◊ 
  2310. d, Palatino
  2311. .°dONLNdJ0[+NvtypeKey—a key fields object `L`ˇ
  2312. °dONLNdo0{õ*!RA typeKey descriptor record contains the data to create or retrieve a cKey object.°dONLNdoá0ìe* Description°dONLNd{áÑì¶)T@To create a typeKey descriptor record, you coerce an Apple event°dONLNdºïѰ±*Brecord containing the following fields into the equivalent typeKey°dONLNdˇ£ÑØ”*descriptor record.
  2313.     °dONLNdªÑΔ¨*Keyword°dONLNdªÎΔ3)gDescriptor type°dONLNd*ªHΔ~)] Description ◊†◊ˇ Á†Áˇ
  2314. °dONLNd6—Ñ›◊(˘¢keyAEColumnList°dONLNdF—Λ )g
  2315. typeAEList°dONLNdQ—H›©)]A list of column object°dONLNdiflHÎt*
  2316. specifiers°dONLNdtÔÑ˚ÿ(¢keyAECurrentSort°dONLNdÖÔÎ˚:)gtypeShortInteger°dONLNdñÔH˚π)]The current sort constants°dONLNd±ˇÑ ø('¢    keyAEName°dONLNdªˇÎ )gtypeChar°dONLNdƒˇH §)]The name of the key°dONLNdÿÑ‹(7¢keyAEPrimaryKey°dONLNdËÎ%)g typeBoolean°dONLNdÙHÀ)]Indicates whether the key is°dONLNdH)ì*the primary key°dONLNd!-Ñ9fl(U¢keyAEUniqueValue°dONLNd2-Î9%)g typeBoolean°dONLNd>-H9À)]Indicates whether the key is°dONLNd[;HGe*unique°dONLNdbQÑ]§(y¢<Note that the Apple Event Manager can coerce any Apple event°dONLNdü_Ñk∞*Drecord into any other descriptor type. A special coercion handler is°dONLNdÂmÑyΩ*
  2317. not required.°dONLNdÛÖ0ë^(≠N    Data Size°dONLNd˝ÖÑëÆ)TVariable(‰N54)$Apple Event Registryˇ&◊#ˇ ˇˇˇˇ#◊ 
  2318. d, Palatino
  2319. .°dONLNdJH[+fvtypeRow—a row object `d`
  2320. °dONLNdoH{R*!A °dONLNdoR{})
  2321. typeRow °dONLNdo}{ª)+Jdescriptor record contains data to create or retrieve a cRow object class.°dONLNdjáHì}(Øf Description°dONLNdváúìø)T@To create a typeRow descriptor record, you coerce an Apple event°dONLNd∑ïú° *Brecord containing the following fields into the equivalent typeRow°dONLNd˙£úØÎ*descriptor record.
  2322.     °dONLNd
  2323. ªúΔƒ*Keyword°dONLNdªΔK)gDescriptor type°dONLNd%ª`Δñ)] Description ◊∏◊ Á∏Á
  2324. °dONLNd1—ú›ÿ(˘∫ keyAEAccess°dONLNd=—›Q)gtypeEnumeration°dONLNdM—`›¿)]The access privileges°dONLNdc·úÌ·(    ∫
  2325. keyAECellList°dONLNdq·Ì8)g
  2326. typeAEList°dONLNd|·`ÌÓ)]The row values and formulas as°dONLNdõÔ`˚‚*a list of typeCell descriptors°dONLNd∫ˇú «('∫keyAEID°dONLNd¬ˇ 0)gtypeChar°dONLNdÀˇ` „)]The permanent ID number for°dONLNdÁ
  2327. `Ü*this row°dONLNdÒú)◊(E∫    keyAEName°dONLNd˚)0)gtypeChar°dONLNd`)ø)]The name of this row°dONLNd-ú9È(U∫keyAEProtection°dONLNd)-9Q)gtypeEnumeration°dONLNd9-`9…)]The formula privileges°dONLNdPCúOº(k∫<Note that the Apple Event Manager can coerce any Apple event°dONLNdçQú]»*Drecord into any other descriptor type. A special coercion handler is°dONLNd”_úk’*
  2328. not required.°dONLNd·wHÉv(üf    Data Size°dONLNdÎwúÉΔ)TVariable(‰òThe Database Suite)t55ˇ ◊#ˇ ˇˇˇˇ#◊ 
  2329. d, Palatino
  2330. .°dONLNdJ0[É+Nv'typeRowSelection—a row selection object `L`ˇ
  2331. °dONLNd(o0{:*!A °dONLNd*o:{è)
  2332. typeRowSelection °dONLNd;oè{è)U;descriptor record contains the data to create or retrieve a°dONLNdw}0âÖ(•NNcSession object. Information about existing sessions cannot be obtained from a°dONLNdΔã0ó‘*#typeRowSelection descriptor record.°dONLNdÍ£0Øe* Description°dONLNdˆ£ÑØ∂)TCTo create a typeRowSelection descriptor record, you coerce an Apple°dONLNd:±ÑΩ¢*@event record containing the following fields into the equivalent°dONLNd{øÑÀ(*#typeRowSelection descriptor record.
  2333.     °dONLNdü◊Ñ‚¨*Keyword°dONLNdß◊΂3)gDescriptor type°dONLNd∑◊Y‚è)n Description Û†Ûˇ †ˇ
  2334. °dONLNd√ÌÖ˘¡(£ keyAEAccess°dONLNdœÌ΢9)ftypeEnumeration°dONLNdflÌY˘π)nThe access privileges°dONLNdı˝Ö    º(%£    keyAEData°dONLNdˇ˝Î    F)ftypeObjectSpecifier°dONLNd˝Y    È)n!An object specifier that resolves°dONLNd5 YÓ*$to a set of rows to be referenced in°dONLNdZY%©*this row selection°dONLNdn)Ö5ª(Q£    keyAEKind°dONLNdx)Î59)ftypeEnumeration°dONLNdà)Y5ß)nThe kind of table°dONLNdö9ÖE¿(a£    keyAEName°dONLNd§9ÎE)ftypeChar°dONLNd≠9YE‚)nThe name of this row selection°dONLNdÃIÖU“(q£keyAEProtection°dONLNd‹IÎU9)ftypeEnumeration°dONLNdÏIYUÿ)nThe table’s protection value°dONLNd    _Ñk§(á¢<Note that the Apple Event Manager can coerce any Apple event°dONLNdFmÑy∞*Drecord into any other descriptor type. A special coercion handler is°dONLNdå{ÑáΩ*
  2335. not required.°dONLNdöì0ü^(ªN    Data Size°dONLNd§ìÑüÆ)TVariable(‰N56)$Apple Event Registryˇ ◊#ˇ ˇˇˇˇ#◊ 
  2336. d, Palatino
  2337. .°dONLNdJH[<+fvtypeSession—a session object `d`
  2338. °dONLNdoH{¨*!PA typeSession descriptor record contains the data necessary to create a cSession°dONLNdn}Hâä*Iobject. Note that information about existing sessions cannot be obtained.°dONLNd∏ïH°}* Description°dONLNdƒïú°Ã)TDTo create a typeSession descriptor record, you coerce an Apple event°dONLNd    £úØü*:record containing the following fields into the equivalent°dONLNdD±úΩ#*typeSession descriptor record.
  2339.     °dONLNdc…ú‘ƒ*Keyword°dONLNdk…‘K)gDescriptor type°dONLNd{…`‘ñ)] Description Â∏ ı∏ı
  2340. °dONLNdáflúÎfi(∫ keyAEAccount°dONLNdîflÎ0)gtypeChar°dONLNdùfl`Îfi)]An optional account name or°dONLNdπÌ`˘·*number for login verification°dONLNd◊˝ú    ‘(%∫
  2341. keyAEGuest°dONLNd‚˝    =)g typeBoolean°dONLNdÓ˝`    Ó)]Whether or not to validate the°dONLNd
  2342.  `⁄*session at the default guest°dONLNd*`%x*level°dONLNd0)ú5Ê(Q∫
  2343. keyAEPassword°dONLNd>)50)gtypeChar°dONLNdG)`5¿)]The session password°dONLNd\9úE–(a∫    keyAEUser°dONLNdf9E0)gtypeChar°dONLNdo9`E›)]The user name to access this°dONLNdåG`S¨*object’s container°dONLNdügúsº(è∫<Note that the Apple Event Manager can coerce any Apple event°dONLNd‹uúÅ»*Drecord into any other descriptor type. A special coercion handler is°dONLNd!Éúè’*
  2344. not required.°dONLNd/õHßv(√f    Data Size°dONLNd9õúßΔ)TVariable°dONLNdB≥Høc(€fNotes°dONLNdH≥úø∞)TThe °dONLNdL≥∞øÍ) keyAEGuest °dONLNdW≥Íø»):4field is used to determine if the user, account, and°dONLNdå¡úÕfi(È∫Fpassword fields are required. If keyAEGuest is TRUE, then they are not°dONLNd”œú€ÿ*Hused and do not need to be included or referenced. The session should be°dONLNd›úÈÁ*Ivalidated at whatever the default guest access level is. If keyAEGuest is°dONLNdfÎú˜€*Bfalse, then the fields keyAEUser and keyAEPassword (and optionally°dONLNd©˘úë*6keyAEAccount) should be used for session verification.°dONLNd·ú∞*The °dONLNdÂ∞Ù)
  2345. keyAEAccount °dONLNdÚÙ∑)D-field is an optional field typically used for°dONLNd ú+≠(G∫?logging onto mainframes. It can be omitted if it is not needed.°dONLNda7úC∞*The °dONLNde7∞C¸)keyAEPassword °dONLNds7¸C≈)L.field is a password that is used to verify the°dONLNd¢EúQ«(m∫Bsession. If the password does not match the password on the server°dONLNdÂSú_±*@for that particular user, then the session creation should fail.+fiiThe Database Suite)t57ˇ
  2346. Ç◊#ˇ ˇˇˇˇ#◊ 
  2347. d, Palatino
  2348. .°dONLNdJ0[+NvtypeTable—a table object `L`ˇ
  2349. °dONLNdo0{:*!A °dONLNdo:{k)
  2350.  
  2351. typeTable °dONLNd%ok{ó)1Fdescriptor record contains data to create or retrieve a cTable object.°dONLNdlá0ìe(ØN Description°dONLNdxáÑì≠)TBTo create a typeTable descriptor record, you coerce an Apple event°dONLNdªïѰ∏*Drecord containing the following fields into the equivalent typeTable°dONLNd£ÑØ”*descriptor record.
  2352.     °dONLNdªÑΔ¨*Keyword°dONLNdªÎΔ3)gDescriptor type°dONLNd+ªHΔ~)] Description ◊†◊ˇ Á†Áˇ
  2353. °dONLNd7—Ñ›¿(˘¢ keyAEAccess°dONLNdC—Λ9)gtypeEnumeration°dONLNdS—H›®)]The access privileges°dONLNdi·ÑÌ…(    ¢ keyAEColumns°dONLNdv·ÎÌ )g
  2354. typeAEList°dONLNdÅ·H̶)]A list of typeColumn°dONLNdñÔH˚z* descriptors°dONLNd£ˇÑ ª('¢    keyAEData°dONLNd≠ˇÎ  )g
  2355. typeAEList°dONLNd∏ˇH œ)]The data in the table as a list°dONLNdÿ
  2356. H’* of rows, with each row as a list°dONLNd˘H'∞*of typeCell descriptors°dONLNd+Ñ7∫(S¢    keyAEKind°dONLNd+Î79)gtypeEnumeration°dONLNd++H7ñ)]The kind of table°dONLNd=;ÑGø(c¢    keyAEName°dONLNdG;ÎG)gtypeChar°dONLNdP;HGÆ)]The name of this table°dONLNdhKÑW—(s¢keyAEProtection°dONLNdxKÎW9)gtypeEnumeration°dONLNdàKHW«)]The table’s protection value°dONLNd•[Ñg…(É¢ keyAERowList°dONLNd≤[Îg )g
  2357. typeAEList°dONLNdΩ[HgÃ)]A list of typeRow descriptors°dONLNd‹qÑ}§(ô¢<Note that the Apple Event Manager can coerce any Apple event°dONLNdÑã∞*Drecord into any other descriptor type. A special coercion handler is°dONLNd_çÑôΩ*
  2358. not required.°dONLNdm•0±^(ÕN    Data Size°dONLNdw•ѱÆ)TVariable°dONLNdÄΩ0…K(ÂNNotes°dONLNdÜΩÑ…ú)T8The keyAERowList and keyAEColumns descriptors should not°dONLNdøÀÑ◊µ*;include the keyAEData keyword. The keyAEData keyword should°dONLNd˚ŸÑÂÆ*Aonly appear in the typeTable descriptor, and the data should be a°dONLNd=ÁÑÛØ*Hlist of lists. Each element in the list is a row, and that row is a list°dONLNdáıÑ´*Bof typeCell descriptors containing only the unique information for°dONLNd ÑØ*
  2359. that cell.(‰N58)$Apple Event Registryˇ,◊#ˇ ˇˇˇˇ#◊ 
  2360. d, Palatino
  2361. .°dONLNdJH[ì+fv'Key forms defined in the Database suite `d`
  2362. °dONLNd(oH{∂*!RTable 4 lists the key forms defined in the Database suite. The italicized words in°dONLNd{}Hâπ*Seach example correspond to the key (the portion of the object specifier record that°dONLNdœãHóΔ*Xdistinguishes an object from other objects of the same class in the same container). For°dONLNd(ôH•ƒ*Qmore information about keys and key forms, see the Apple Event Manager chapter of°dONLNdzßH≥ñ*Inside Macintosh°dONLNdäßñ≥õ)N: °dONLNdåßõ≥/)Interapplication Communication°dONLNd™ß/≥2)î.,
  2363.  
  2364. Zapf Dingbats
  2365. °dONLNd¨‘H€N(˘fn
  2366. °dONLNdÆ“Xfiy+Table 4°dONLNd∂“ífiH):'Key forms defined in the Database suite
  2367.     °dONLNdfiÍHıú(fKey form constant°dONLNdÍΔı¸)~ Description d d
  2368. °dONLNd¸H ™((fformAbsolutePosition°dONLNdΔ ∂)~7Specifies the position of an element in relation to the°dONLNdIΔ≤*6beginning or end of its container (for example, “word °dONLNd≤π)Ï5 °dONLNdÅπfl) of . . . ”),°dONLNdéΔ(·(D‰@or specifies one or more elements with a constant defined in the°dONLNdœ*Δ6\*Apple Event Manager chapter of °dONLNdÓ*\6™)ñInside Macintosh°dONLNd˛*™6≠)N:°dONLNd8ΔDZ(`‰Interapplication Communication°dONLNd8ZDæ)î, such as kAEFirst (for°dONLNd6FΔR    (n‰example, “the °dONLNdDF    R)Cfirst°dONLNdIFRfl)- word in paragraph 12 . . . ”) or kAEAll (for°dONLNdwTΔ`˜(|‰
  2369. example, “°dONLNdÅT˜`)1all °dONLNdÖT`ô)"the words in paragraph 12 . . . ”)°dONLNd®dHpy(åfformName°dONLNd±dΔpÆ)~3Specifies an element by its name (for example, “the°dONLNdÂrΔ~Ú*    document °dONLNdÓrÚ~@),named ‘MyDoc’ ”°dONLNd˝r@~D)N)°dONLNdˇÇHéë(™fformPropertyID°dONLNdÇΔé¥)~7Specifies a property of an object by its four-character°dONLNdFêΔú=*property ID (for example, °dONLNd`ê=úf)w    “the font°dONLNdiêfúö))  of word 1”)°dONLNdv†H¨y(»f    formRange°dONLNdÄ†Δ¨æ)~7Specifies a list of elements between two other elements°dONLNd∏ÆΔ∫9*(for example, “the words °dONLNd—Æ9∫«)sbetween ‘Wild’ and ‘Zanzibar,’°dONLNdºΔ»Ô(‰‰    inclusive°dONLNd˘ºÔ»¯))”)°dONLNd¸ÃHÿ´(ÙfformRelativePosition°dONLNdÃΔÿ´)~2Specifies an element immediately before or after a°dONLNdD⁄ΔÊ6*container (for example, “°dONLNd]⁄6Ê])p    the next °dONLNdf⁄]Êv)'word °dONLNdk⁄vÊè)after °dONLNdq⁄èÊ∏)the word°dONLNdzËΔÙ%(‰whose style is bold”)°dONLNdê¯Hp( fformTest°dONLNdô¯Δƒ)~:Specifies one or more elements that pass a test; values of°dONLNd‘Δ†*2one or more properties or elements are tested (for°dONLNdΔ S*example, “the first paragraph °dONLNd%S ƒ)çthat is centered and that°dONLNd?"Δ.O(J‰begins with the word ‘Wild’ ”°dONLNd\"O.S)â)++öThe Database Suite)t59ˇ 6◊#ˇ ˇˇˇˇ#◊ 
  2370. d, Palatino
  2371. .°dONLNdH0Yfi+Nt2Comparison operators defined in the Database suite ^L^ˇ
  2372. °dONLNd3o0{f*#ETable 5 lists the comparison operators defined in the Database suite.,
  2373.  
  2374. Zapf Dingbats
  2375. °dONLNdyú0£6**n
  2376. °dONLNd{ö@¶a+Table 5°dONLNdÉöz¶e):2Comparison operators defined in the Database suite
  2377.     °dONLNd∂≥0æí(⁄NComparison operator ŒLŒˇ°dONLNdÀø0 W* constant°dONLNd‘øª Â)ãOperator°dONLNd›ø >)M Description ÔLÔˇ
  2378. °dONLNdÈŸ0Â|(N
  2379. kAEBeginsWith,
  2380. Courier°dONLNd˜Ÿ∫Âfi)ä'bgwt'°dONLNd˛ŸÂÆ)N%The value of the first operand begins°dONLNd$ÁÛ∞*$with the value of the second operand°dONLNdIı§*"(for example, the string “operand”°dONLNdlï*begins with the string “opera”)°dONLNdå0l(;N kAEContains°dONLNdò∫fi)ä'cont'°dONLNdüê)NThe value of the first operand°dONLNdæ!-ó* contains the value of the second°dONLNdfl/;ö* operand (for example, the string°dONLNd=I´*$“operand” contains the string “era”)°dONLNd%M0Ys(uN kAEEndsWith°dONLNd1M∫Yfi)ä'ends'°dONLNd8MY¶)N#The value of the first operand ends°dONLNd\[g∞*$with the value of the second operand°dONLNdÅiu§*"(for example, the string “operand”°dONLNd§wÉÑ*ends with the string “and”)°dONLNd¿á0ìb(ØN    kAEEquals°dONLNd á∫ìfi)ä'=   '°dONLNd—áìö)N!The value of the first operand is°dONLNdÛï°ñ* equal to the value of the second°dONLNd£Ø-*operand°dONLNd≥0ø(€NkAEGreaterThan°dONLNd+≥∫øfi)ä'>   '°dONLNd2≥øö)N!The value of the first operand is°dONLNdT¡Õ´*$greater than the value of the second°dONLNdyœ€-*operand°dONLNdÅfl0Îù(NkAEGreaterThanEquals°dONLNdñfl∫Îfi)ä'>=  '°dONLNdùflÎö)N!The value of the first operand is°dONLNdøÌ˘´*%greater than or equal to the value of°dONLNdÂ˚^*the second operand°dONLNd¯ 0o(3N kAELessThan°dONLNd ∫fi)ä'<   '°dONLNd  ≠)N&The value of the first operand is less°dONLNd2%Ø*$than the value of the second operand°dONLNdW)05ç(QNkAELessThanEquals°dONLNdi)∫5fi)ä'<=  '°dONLNdp)5≠)N&The value of the first operand is less°dONLNdó7Cö*!than or equal to the value of the°dONLNdπEQL*second operand(‰N60)$Apple Event Registryˇ»◊#ˇ ˇˇˇˇ#◊ 
  2381. d, Palatino
  2382. .°dONLNdHHYë+ft'Constants defined in the Database suite ^d^
  2383. °dONLNd(oH{G*#:Table 6 lists the constants defined in the Database suite.,
  2384.  
  2385. Zapf Dingbats
  2386. °dONLNdcìHöN*!n
  2387. °dONLNdeëXùy+Table 6°dONLNdmëíùF):'Constants defined in the Database suite
  2388.     °dONLNdï©H¥q(–fConstant°dONLNdû©ÿ¥Û)êValue°dONLNd§© ¥I)HConstant°dONLNd≠©∞¥À)êValue ≈d≈ ’d’
  2389. °dONLNd≥øHÀx(Áf    cDatabase,
  2390. Courier°dONLNdΩøŸÀ˝)ë'cDB '°dONLNdƒø ÀG)GkAESort°dONLNdÃø∞À‘)ê'SORT'°dONLNd”œH€j(˜fcDBMS°dONLNdŸœŸ€˝)ë'cDBM'°dONLNd‡œ €)GkAEVariableRepeat°dONLNdÚœ∞€‘)ê'rVar'°dONLNd˘flHÎb(fcHost°dONLNdˇflŸÎ˝)ë'cHST'°dONLNdfl ÎT)G
  2391. kAscending°dONLNdfl∞Π)ê$0000°dONLNdÔH˚_(fcKey°dONLNdÔŸ˚˝)ë'cKEY'°dONLNd#Ô ˚M)GkAverage°dONLNd,Ô∞˚‘)ê'AVRG'°dONLNd3ˇH ä('f
  2392. cRowSelection°dONLNdAˇŸ ˝)ë'crsl'°dONLNdHˇ  @)GkCount°dONLNdOˇ∞ ‘)ê'CONT'°dONLNdVHv(7f
  2393. cSelection°dONLNdaŸ˝)ë'csel'°dONLNdh b)G
  2394. kCreateAccess°dONLNdv∞ )ê$0008°dONLNd|H+m(GfcSession°dONLNdÖŸ+˝)ë'cSES'°dONLNdå +C)GkCursor°dONLNdî∞+‘)ê'CURS'°dONLNdõ/H;|(Wf
  2395. enumAccess°dONLNd¶/Ÿ;˝)ë'accs'°dONLNd≠/ ;b)G
  2396. kDeleteAccess°dONLNdª/∞; )ê$0010°dONLNd¡?HK§(gfenumGroupFunctions°dONLNd‘?ŸK˝)ë'grup'°dONLNd€? KY)G kDescending°dONLNdÁ?∞K )ê$0001°dONLNdÌOH[è(wf
  2397. enumLockTypes°dONLNd˚OŸ[˝)ë'lock'°dONLNdO [f)GkExclusiveLock°dONLNdO∞[‘)ê'EXLK'°dONLNd_Hkç(áfenumProtection°dONLNd'_Ÿk˝)ë'prtn'°dONLNd._ k\)G keyAEAccess°dONLNd:_∞k‘)ê'pACS'°dONLNdAoH{†(ófenumRepeatValues°dONLNdRoŸ{˝)ë'erpt'°dONLNdYo {b)G keyAEAccount°dONLNdfo∞{‘)ê'pACT'°dONLNdmHãù(ßfenumSortDirection°dONLNdŸã˝)ë'sort'°dONLNdÜ ãs)GkeyAEColumnList°dONLNdñ∞ã‘)ê'kCol'°dONLNdùèHõî(∑fenumTableTypes°dONLNd¨èŸõ˝)ë'tblt'°dONLNd≥è õe)G keyAEColumns°dONLNd¿è∞õ‘)ê'COLS'°dONLNd«üH´ë(«f
  2398. errAEDeadLock°dONLNd’üŸ´˜)ë–10019°dONLNd‹ü ´t)GkeyAECurrentSort°dONLNdÌü∞´‘)ê'pSRT'°dONLNdÙØHª¿(◊ferrAELockRequestTimeout°dONLNd ØŸª˜)ë–10020°dONLNdØ ªz)GkeyAEDefaultType°dONLNd$Ø∞ª‘)ê'deft'°dONLNd+øHÀ (ÁferrAENoSuchGroupFunction °dONLNdEøŸÀ˜)ë–10018°dONLNdLø ÀÄ)GkeyAEGroupColumns°dONLNd^ø∞À‘)ê'GRPC'°dONLNdeœH€±(˜ferrAENoSuchSortType°dONLNdyœŸ€˜)ë–10017°dONLNdÄœ €Ñ)GkeyAEGroupFunctions°dONLNdîœ∞€‘)ê'GRPF'°dONLNdõflHÎï(ferrAENotUnique°dONLNd™flŸΘ)ë–10022°dONLNd±fl ÎX)G
  2399. keyAEGuest°dONLNdºfl∞Α)ê'pGST'°dONLNd√ÔH˚Ω(ferrAETransactionTimeout°dONLNd€ÔŸ˚˜)ë–10021°dONLNd‚Ô ˚K)GkeyAEID°dONLNdÍÔ∞˚‘)ê'ID  '°dONLNdÒˇH ´('fkAEAbortTransaction°dONLNdˇŸ ˝)ë'ABRT'°dONLNd ˇ  V)G    keyAEKind°dONLNdˇ∞ ‘)ê'pKND'°dONLNdHà(7f kAEDatabase°dONLNd)Ÿ˝)ë'DATA'°dONLNd0 [)G    keyAEName°dONLNd:∞‘)ê'pnam'°dONLNdAH+É(Gf
  2400. kAEDBSuite°dONLNdLŸ+˝)ë'dbst'°dONLNdS +i)G keyAENullsOK°dONLNd`∞+‘)ê'pNLS'°dONLNdg/H;ó(WfkAEFixedRepeat°dONLNdv/Ÿ;˝)ë'rFxd'°dONLNd}/ ;j)G
  2401. keyAEPassword°dONLNdã/∞;‘)ê'pPAS'°dONLNdí?HK¢(gfkAEFormulaProtect°dONLNd§?ŸK˝)ë'fpro'°dONLNd´? Kx)GkeyAEPrimaryKey°dONLNdª?∞K‘)ê'pPKy'°dONLNd¬OH[w(wfkAEGroup°dONLNdÀOŸ[˝)ë'GRUP'°dONLNd“O [n)GkeyAERepeating°dONLNd·O∞[‘)ê'pRPT'°dONLNdË_Hkê(áf
  2402. kAEModifiable°dONLNdˆ_Ÿk˝)ë'modf'°dONLNd˝_ kt)GkeyAERepeatSize°dONLNd
  2403. _∞k‘)ê'pRPS'°dONLNdoH{£(ófkAENonModifiable°dONLNd%oŸ{˝)ë'nmod'°dONLNd,o {e)G keyAERowList°dONLNd9o∞{‘)ê'krls'°dONLNd@Hãõ(ßfkAESingleValued°dONLNdPŸã˝)ë'rSgl'°dONLNdW ã`)G keyAESession°dONLNdd∞ã‘)ê'SESN'°dONLNdlçΔô˘+ (continued)(‰òThe Database Suite)t61ˇ◊#ˇ ˇˇˇˇ#◊ 
  2404. d,
  2405.  
  2406. Zapf Dingbats
  2407. .°dONLNdD0K6+Nin, Palatino
  2408. °dONLNdB@Na+Table 6°dONLNd
  2409. BzN0):(Constants defined in the Database suite °dONLNd2B0Nc)∂ (continued)
  2410.     °dONLNd>Z0eY(ÅNConstant°dONLNdGZ¿e€)êValue°dONLNdMZe1)HConstant°dONLNdVZòe≥)êValue vLvˇ ÜLܡ
  2411. °dONLNd\p0|á(òNkeyAESortElement,
  2412. Courier°dONLNdmp¡|Â)ë'SRTE'°dONLNdtp|C)G pCurrentSort°dONLNdÅpò|º)ê'pSRT'°dONLNdàÄ0åy(®N
  2413. keyAESortType°dONLNdñÄ¡åÂ)ë'SRTT'°dONLNdùÄå4)GpFormula°dONLNd¶Äòåº)ê'pfor'°dONLNd≠ê0úã(∏NkeyAEUniqueValue°dONLNdæê¡úÂ)ë'pUNQ'°dONLNd≈êú')GpGuest°dONLNdÃêòúº)ê'pGST'°dONLNd”†0¨d(»N    keyAEUser°dONLNd›†¡¨Â)ë'pUSR'°dONLNd‰†¨)GpID°dONLNdˆò¨º)ê'ID  '°dONLNdÔ∞0ºX(ÿNkLinkset°dONLNd¯∞¡ºÂ)ë'LINK'°dONLNdˇ∞º%)GpKind°dONLNd∞òºº)ê'pKND'°dONLNd ¿0Ãc(ËNkMaximum°dONLNd¿¡ÃÂ)ë'MAX '°dONLNd¿Ã#)GpLock°dONLNd"¿òú)ê'pLCK'°dONLNd)–0‹O(¯NkMean°dONLNd/–¡‹Â)ë'MEAN'°dONLNd6–‹6)GpNullsOk°dONLNd?–ò‹º)ê'pNLS'°dONLNdF‡0Ïa(NkMinimum°dONLNdO‡¡ÏÂ)ë'MIN '°dONLNdV‡Ï[)GpOpenTransaction°dONLNdg‡òϺ)ê'pTRN'°dONLNdn0¸a(N    kNoAccess°dONLNdx¡¸€)ë$0000°dONLNd~¸9)G    pPassword°dONLNdàò¸º)ê'pPAS'°dONLNdè0 Y((NkNoLock°dONLNdó¡ Â)ë'NOLK'°dONLNdû G)G pPrimaryKey°dONLNd™ò º)ê'pPKy'°dONLNd±0](8NkNumeric°dONLNd∫¡€)ë$0002°dONLNd¿=)G
  2414. pRepeating°dONLNdÀòº)ê'pRPT'°dONLNd“ 0,k(HN kReadAccess°dONLNdfi ¡,€)ë$0001°dONLNd‰ ,C)G pRepeatSize°dONLNd ò,º)ê'pRPS'°dONLNd˜00<m(XN kSharedLock°dONLNd0¡<Â)ë'SHLK'°dONLNd
  2415. 0<2)GpRowIDs°dONLNd0ò<º)ê'pRWS'°dONLNd@0LY(hNkStdDev°dONLNd!@¡LÂ)ë'STDV'°dONLNd(@LJ)G pUniqueValue°dONLNd5@òLº)ê'pUNQ'°dONLNd<P0\I(xNkSum°dONLNdAP¡\Â)ë'TOTL'°dONLNdHP\#)GpUser°dONLNdNPò\º)ê'pUSR'°dONLNdU`0lP(àNkTable°dONLNd\`¡lÂ)ë'TABL'°dONLNdc`l*)GpValue°dONLNdj`òlº)ê'vlue'°dONLNdqp0|Y(òNkTextual°dONLNdzp¡|€)ë$0000°dONLNdÄp|1)GtypeCell°dONLNdâpò|º)ê'ccel'°dONLNdêÄ0åv(®N
  2416. kUpdateAccess°dONLNdûÄ¡å€)ë$0004°dONLNd§Äå?)G
  2417. typeColumn°dONLNdØÄòåº)ê'ccol'°dONLNd∂ê0úO(∏NkView°dONLNdºê¡úÂ)ë'VIEW'°dONLNd√êú0)GtypeKey°dONLNdÀêòúº)ê'cKEY'°dONLNd“†0¨o(»N kWriteAccess°dONLNdfl†¡¨€)ë$0002°dONLNd†¨1)GtypeRow°dONLNd̆ò¨º)ê'crow'°dONLNdÙ∞0ºS(ÿNpAccess°dONLNd¸∞¡ºÂ)ë'pACS'°dONLNd∞º[)GtypeRowSelection°dONLNd∞òºº)ê'crsl'°dONLNd¿0ÃY(ËNpAccount°dONLNd$¿¡ÃÂ)ë'pACT'°dONLNd+¿Ã>)G typeSession°dONLNd7¿òú)ê'cSES'(‰N62)$Apple Event Registryˇz◊#ˇ ˇˇˇˇ#◊ 
  2418. d, Palatino
  2419. .°dONLNdf8zJ+Vî   °dONLNdfJz)Index
  2420. °dONLNd §H∞P(ÃfA°dONLNd‚§fi∞Ê)ñD°dONLNdπ¢tÆÎ( íerrAENoSuchSortType  12°dONLNd—Æt∫Ù* errAENoSuchTransaction  6,°dONLNdÏ∫åΔë+ 8°dONLNd
  2421. ¥H¿¿(‹fAbort Transaction  2, 4, 5, 6°dONLNd‰¥fi¿C)ñdatabase management°dONLNd¯¿ˆÃ+     system  2°dONLNd+¿HÃ∂(ËfApple event constructs  2°dONLNdÓ“tfiz(˙íF°dONLNdEÃHÿ…(ÙfApple events, defined in the°dONLNdbÿ`‰∫+ Database suite  4–7,°dONLNdx‰`y* 10, 12°dONLNdÃfiÿK(Ù¸Database object class  25°dONLNdÿfi‰9* Database suite  1-62°dONLNd‚tÓÈ+ñ
  2422. formAbsolutePosition key°dONLNd    Óå˙Ø+ form  59°dONLNd1‰ÍV( Apple events defined in°dONLNdJ¸.+ 4-7, 10, 12°dONLNd¸HO($fB°dONLNd˙t›("íformName key form  59°dONLNdV¸ÍJ($comparison operators°dONLNdk>+ defined in  60°dONLNd(tı(.íformPropertyID key form  59°dONLNdÅ H (4f Begin Transaction  3, 4, 5, 6, 7°dONLNdDt›(:íformRange key form  59°dONLNdzÍ _(<constants defined in  61-62°dONLNd¢H$∑(@fBegins With comparison°dONLNdπ$`0ï+ operator  60°dONLNd[t*Í(FíformRelativePosition key°dONLNdt*å6Ø+ form  59°dONLNdñ Í,X(Hdescriptor types defined°dONLNdØ,8+ in  51°dONLNdΔ<HHO(dfC°dONLNd}6tB‘(^íformTest key form  59°dONLNd∂8ÍDT(`key forms defined in  59°dONLNdìNtZö+ä
  2423. G, H, I, J°dONLNdœDÍPT(lobject classes defined in°dONLNdÍP\Y+ 13-18, 24, 27, 29, 32,°dONLNd\h**
  2424. 39, 43, 46°dONLNd»LHX™(tfcCell  13, 16, 23, 37, 49°dONLNd‚XHd«* cColumn  13, 21, 24, 34, 42, 50°dONLNdû^tjÓ(ÜíGet Class Info  24, 27, 29, 50°dONLNddHp§(åfcDatabase  13, 29, 31°dONLNd hÍt:+¢object inheritance°dONLNdtÄJ+ hierarchy in  14°dONLNdΩjtvÚ(ííGet Data  4, 18, 24, 27, 29, 50°dONLNdpH|ñ(òfcDBMS  13, 28, 31°dONLNd›vtÇÌ(ûíGet Data Size  3, 18, 24, 27,°dONLNd˚Çåé•+ 29, 50°dONLNd*|Hàp(§f    cHost  13°dONLNd0ÄfiåE+ñDatabase suite defines°dONLNdGåˆò;+ Apple events  2°dONLNd4àHîã(∞fcKey  13, 42, 50°dONLNdétöÊ(∂íGreater Than comparison°dONLNdöå¶¡+ operator  60°dONLNdEîH†é(ºfClone  24, 27, 50°dONLNdWòfi§+ñ DBMS  2, 16°dONLNdW†H¨£(»fcObject  16, 21, 25, 28°dONLNdc§fi∞)+ñDelete  24, 27, 50°dONLNd'¶t≤Â+ñGreater Than or Equal To°dONLNd@≤åæˆ+ comparison operator  60°dONLNdo¨H∏´(‘fcomparison operators,°dONLNdÖ∏`ƒ†+ defined in the°dONLNdîƒ`–≤* Database suite  60°dONLNdv∞fiºZ(ÿ¸descriptor types, defined in°dONLNd캈»Z+ the Database suite  51°dONLNdXæt ß+~ Group  4, 24°dONLNd™»fi‘U(¸Do Objects Exist  18, 24, 27,°dONLNd»‘ˆ‡+ 29, 50°dONLNde÷t‚á+~K, L°dONLNdß–H‹∂(¯fconstants, defined in the°dONLNd¡‹`Ë¿+ Database suite  61-62°dONLNdœÏfi¯‰+~E°dONLNdjÊtÚ‡(íkAEAbortTransaction  5°dONLNd◊ËHÙ•(fContains comparison°dONLNdÎÙ`ï+ operator  60°dONLNdÅÚt˛ı(íkAEBeginsWith comparison°dONLNdö˛å
  2425. ¡+ operator  60°dONLNd—¸fi/($¸End Transaction  5°dONLNd¯H ™((fCore suite transaction°dONLNd `Ö+ model  2°dONLNd‰fiD(0¸Ends With comparison°dONLNd˘ˆ ++ operator  60°dONLNdß
  2426. t‡(2íkAEBeginTransaction  7°dONLNdæt"Â* kAEContains comparison°dONLNd’"å.¡+ operator  60°dONLNdH$»(@fCount Elements  24, 27, 29, 50°dONLNd fi,/+ñenumAccess  21, 25°dONLNd8$H0µ(LfCreate Element  4, 27, 50°dONLNd,fi8D+ñenumRepeatValues  23°dONLNd‚.t:÷+ñkAEDatabase  5, 9, 11°dONLNdR0H<å(XfcRow  36, 42, 50°dONLNd.8fiD:+ñEqual To comparison°dONLNdBDˆP++ operator  60°dONLNd¯:tFÏ(bíkAEEndsWith comparison°dONLNdFåR¡+ operator  60°dONLNdc<HHß(dfcRowSelection  14, 40°dONLNdyHHTº* cSession  6, 7, 14, 26, 29, 31°dONLNdOPfi\W+ñerrAEEventFailed  6, 8, 10,°dONLNdk\ˆh+ 12°dONLNdRt^€(zíkAEEquals comparison°dONLNd1^åj¡+ operator  60°dONLNdòTH`ë(|fcSession object  2°dONLNd´`Hl°* cTable  14, 26, 38, 40°dONLNdnhfitW+ñerrAEEventNotHandled  5°dONLNd>jtv—+ñkAEFixedRepeat  24°dONLNd¬lHx}(îf
  2427. cText  16, 28°dONLNdÜtfiÄ@+ñerrAEInTransaction  8°dONLNdQvtǯ+ñkAEGreaterThan comparison°dONLNdkÇåé¡+ operator  60°dONLNd–xHÑè(†fcType  16, 21, 28°dONLNdúÄfiå^+ñerrAENoSuchGroupFunction°dONLNd∂åˆò+ 10+¯063ˇfi◊#ˇ ˇˇˇˇ#◊ 
  2428. d, Palatino
  2429. .°dONLNdA0Mù+NikAEGreaterThanEquals°dONLNdMHY≤+ comparison operator  60°dONLNdûCΔOœ(k‰M°dONLNdoC\Ob)ñS°dONLNd†SΔ_¸({‰ Move  24, 50°dONLNdqS\_Ÿ)ñSet Data  4, 18, 24, 27, 29, 50°dONLNd-Y0eh(ÅN kAEGroup  9°dONLNd≠kΔwœ+ñN°dONLNdë_\ká(áz Sort  4, 50°dONLNd9e0q§(çNkAELessThan comparison°dONLNdPqH}}+ operator  60°dONLNdùw\É∞(üzT, U, V, W, X, Y, Z°dONLNdØ{ΔáÒ(£‰NULL  29°dONLNd]}0âç(•NkAELessThanEquals°dONLNdoâHï≤+ comparison operator  60°dONLNd∏ìΔüŒ+~
  2430. O°dONLNd±á\ìø(Øzthe End Transaction  6°dONLNd»ì\ü∞* transaction ID  5, 7°dONLNdáï0°ë(ΩNkAEMiscStandards  7°dONLNd›ü\´€(«zTransaction Terminated  5, 6°dONLNdõ°0≠ë(…NkAESingleValued  24°dONLNd∫£ΔØE+ñobject classes, defined in the°dONLNdŸØfiªA+ Database suite  13-24,°dONLNdªfi«3* 27, 29, 32, 39, 43, 46°dONLNd˙´\∑“(”ztypeAEDescList  25, 28, 30°dONLNdØ≠0πù(’NkAEVariableRepeat  24°dONLNd∑\√€(flztypeAEList  52, 53, 54, 55, 58°dONLNd≈π0≈°(·NkCreateAccess  21, 25, 36,°dONLNd·≈H—a+ 40, 48°dONLNd4√\œ≥(ÎztypeBoolean  53, 57°dONLNd«Δ”G(Ô‰object inheritance hierarchy°dONLNd%”fiflË+ 15°dONLNdHœ\€±(˜ztypeCell  16, 51, 52°dONLNdË—0›c(˘N key field  3°dONLNd]€\Á÷(ztypeChar  52, 53, 54, 55, 56,°dONLNd{ÁtÛç+ 57, 58°dONLNdı›0Ȱ(Nkey forms, defined in the°dONLNdÈHıö+ Database suite  59°dONLNd(fl“Î3(for Database suite  14°dONLNd?ÎΔ˜>(‰object specifiers, key forms°dONLNd\˜fi˘+ for  59°dONLNdÇÛ\ˇ∞(ztypeColumn  21, 51°dONLNd"ı0ß(NkeyAEAccess  53, 55, 56, 58°dONLNdïˇ\ ‘('ztypeEnumeration  9, 52, 53,°dONLNd± tú+
  2431. 55, 56, 58°dONLNd>0
  2432. Ä()NkeyAEAccount  57°dONLNddΔÂ+ñP, Q, R°dONLNdO
  2433. 0í(5NkeyAECellList  53, 55°dONLNdº\#±(?ztypeInsertionLoc  9°dONLNde0%ë(ANkeyAEColumnList  54°dONLNdlΔ+3+ñpAccess  21, 25, 36, 40, 48°dONLNd–#\/ü+ñtypeIntlText  8°dONLNdy%01É(MNkeyAEColumns  58°dONLNdà+Δ7˝+ñ pAccount  44°dONLNd‡/\;°+ñtypeKey  33, 51°dONLNdä10=í(YNkeyAECurrentSort  54°dONLNdï7ΔCD+ñpBestType  16, 21, 25, 28, 30,°dONLNd¥CfiO$+ 33, 36, 40, 44, 48°dONLNd;\G¥(cztypeLongInteger  52°dONLNdü=0Iù(eNkeyAEData  4, 52, 56, 58°dONLNdG\S‹(oztypeObjectSpecifier  7, 9, 46,°dONLNd#St_~+ 56°dONLNd∏I0Uñ(qNkeyAEDefaultType 52°dONLNd«OΔ[A+ñpClass  16, 21, 25, 28, 30, 33,°dONLNdÁ[fig+ 36, 40, 44, 48°dONLNdÃU0aí(}NkeyAEFormula  52, 53°dONLNd&_\k¢(áztypeRow  51, 55°dONLNd·a0mô(âNkeyAEGroupColumns  9°dONLNdˆgΔs+ñpCurrentSort  33°dONLNd6k\w€+ñtypeRowSelection  40, 51, 56°dONLNdˆm0y¨(ïNkeyAEGroupFunctions  9, 10°dONLNdsΔE+ñpDefaultType  16, 21, 25, 28,°dONLNd%fiã$+ 30, 36, 40, 44, 48°dONLNdSw\Ɇ(üztypeSession  51°dONLNdy0Öv(°NkeyAEGuest  57°dONLNdcÉ\èπ(´ztypeShortInteger  54°dONLNd Ö0ëi(≠N keyAEID  55°dONLNd8ãΔó+ñpFormula  16, 22°dONLNdxè\õ∑+ñtypeTable  48, 51, 58°dONLNd,ë0ùò(πNkeyAEInsertHere  9, 10°dONLNdIóΔ£Û+ñ
  2434. pGuest  45°dONLNdéõ\ßñ+ñ typeType  52°dONLNdCù0©É(≈NkeyAEKind  56, 58°dONLNdT£ΔØı+ñ pID  37, 45°dONLNdU©0µ©(—NkeyAEName  52, 53, 54, 55,°dONLNdpµH¡a+ 56, 58°dONLNd`ØΔª(◊‰
  2435. pKind  41, 49°dONLNdnªΔ«:* pLock  17, 22, 26, 37, 41, 49°dONLNdw¡0Õá(ÈNkeyAENullsOK  53°dONLNdå«Δ”D+ñpName  17, 22, 26, 28, 30, 34,°dONLNd´”fifl+
  2436. 37, 41, 49°dONLNdàÕ0Ÿà(ıNkeyAEPassword  57°dONLNdöŸ0¨* keyAEProtection  52, 53, 55,°dONLNd∑ÂHÒa+ 56, 58°dONLNd∂flΔÎ(‰ pNullsOk  22°dONLNd√ÎΔ˜'* pOpenTransaction  45°dONLNdæÒ0˝í(NkeyAERepeatSize  52°dONLNdÿ˜Δ+ñ
  2437. pPassword  45°dONLNd“˝0    z(%NkeyAEResult  10°dONLNdÊΔ+ñpPrimaryKey  34°dONLNd‚    0É(1NkeyAERowList  58°dONLNdˆΔD+ñpProtection  17, 22, 37, 41, 49°dONLNdÛ0!~(=NkeyAESession  46°dONLNdΔ'    +ñpRepeating  23°dONLNd!0-§(INkeyAESortElement  11, 12°dONLNd%'Δ3+ñpRepeatSize  17, 23°dONLNd-09á(UNkeyAESortType  11°dONLNd93Δ?˛+ñ pRowIDs  41°dONLNd/90Eô(aNkeyAEUniqueValue  53°dONLNdE?ΔK%+ñpUniqueValue  23, 34°dONLNdDE0Qr(mN
  2438. keyAEUser  57°dONLNdZKΔWÔ+ñ    pUser  45°dONLNdRQ0]í(yNkeyDirectObject  9, 11°dONLNddWΔcˆ+ñ
  2439. pValue  17°dONLNdi]0iä(ÖNkeyErrorNumber  10°dONLNd|i0uû* kWriteAccess  21, 25, 36,°dONLNdóuHÅa+ 40, 48(‰N64)$Apple Event Registryˇ˛◊#ˇ ˇˇˇˇ#◊ 
  2440. d, Palatino
  2441. .°dONLNdCHON+fkT
  2442.     °dONLNdDNO])HE 
  2443. °dONLNdC^Of)A
  2444.     °dONLNdDfO~)PPLE 
  2445. °dONLNd
  2446. C~OÑ)P
  2447.     °dONLNd DÑOº)
  2448. UBLISHING 
  2449. °dONLNdCºO¬)8S
  2450.     °dONLNdD¬O·)YSTEM
  2451. °dONLNdcHo˛(ãf&This Apple manual was written, edited,°dONLNdFnHzÛ* $and composed on a desktop publishing°dONLNdlyHÖ* &system using Apple Macintosh computers°dONLNdîÑHê* (and Microsoft Word software. Proof pages°dONLNdΩèHõ* *were created on an Apple LaserWriter IINTX°dONLNdËöH¶¸* (printer. Final pages were created on the°dONLNd•H±* 'Varityper VT600 imagesetter. PostScript°dONLNd8¢Æ (  ®°dONLNd9• ±+    ,°dONLNd;∞HºÛ(ÿf%the page-description language for the°dONLNdaªH«ˆ* #LaserWriter, was developed by Adobe°dONLNdÖΔH“¨* Systems Incorporated.°dONLNdú◊H„˛*'Text type and display type are Palatino°dONLNd√‘˛‡(¸®°dONLNdƒ◊„
  2452. +    .°dONLNdΔ‚HÓ—(
  2453. fBullets are ITC Zapf Dingbats°dONLNd„fl—Î⁄(Ô®°dONLNd‰‚⁄Ó˜+    . Some°dONLNdÎÌH˘(f+elements, such as program listings, are set°dONLNd¯Hó* in Apple Courier.°dONLNd,H"õ*Writer: Amr Eissa°dONLNd>#H/∂*
  2454. Illustrator: Janet Andersˇ